@orbinum/sdk 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -3,8 +3,8 @@ import { PolkadotClient, TxFinalizedPayload, PolkadotSigner, TxOptions } from 'p
3
3
  export { PolkadotSigner, getSs58AddressInfo } from 'polkadot-api';
4
4
  import { getDynamicBuilder } from '@polkadot-api/metadata-builders';
5
5
  import { getExtrinsicDecoder } from '@polkadot-api/tx-utils';
6
- import { ArtifactProvider, ProofResult, DisclosureProofOutput } from '@orbinum/proof-generator';
7
- export { ArtifactProvider, CircuitType, DisclosureMask as DisclosureFlags, DisclosureProofOutput, ProofResult, WebArtifactProvider, generateDisclosureProof } from '@orbinum/proof-generator';
6
+ import { ArtifactProvider, ProofResult } from '@orbinum/proof-generator';
7
+ export { ArtifactProvider, CircuitType, ProofResult, WebArtifactProvider } from '@orbinum/proof-generator';
8
8
  export { AccountId, Blake2256, Keccak256, Storage, u128, u64 } from '@polkadot-api/substrate-bindings';
9
9
  export { base58 } from '@scure/base';
10
10
  export { getPolkadotSigner } from 'polkadot-api/signer';
@@ -159,12 +159,12 @@ declare class SubstrateClient {
159
159
  * const result = await tx.signAndSubmit(signer);
160
160
  * ```
161
161
  */
162
- get unsafe(): polkadot_api.UnsafeApi<unknown>;
162
+ get unsafe(): polkadot_api.TypedApi<polkadot_api.ChainDefinition, false>;
163
163
  /**
164
164
  * Wraps pre-built SCALE call bytes (from protocol-core TransactionBuilder)
165
165
  * into a PAPI UnsafeTransaction that can be signed and submitted.
166
166
  */
167
- txFromCallData(callData: Uint8Array): Promise<polkadot_api.UnsafeTransaction<any, string, string, any, Record<string, {
167
+ txFromCallData(callData: Uint8Array): Promise<polkadot_api.Transaction<any, Record<string, {
168
168
  value: any;
169
169
  additionalSigned: any;
170
170
  } | {
@@ -496,6 +496,8 @@ interface ShieldedCommitment {
496
496
  leafIndex: number;
497
497
  /** Asset ID as decimal string (e.g. "0"). */
498
498
  assetId: string;
499
+ /** Origin of the commitment: direct shield, output of private transfer, or change from unshield. */
500
+ source: 'shield' | 'transfer' | 'unshield';
499
501
  /** SS58 or 0x-prefixed depositor address, null if not tracked. */
500
502
  sender: string | null;
501
503
  /** 0x-prefixed encrypted memo hex, null if not present. */
@@ -617,11 +619,56 @@ interface IndexerStats {
617
619
  merkleRoot: string | null;
618
620
  treeSize: number | null;
619
621
  };
622
+ relayers: {
623
+ active: number;
624
+ };
620
625
  zkVerifier: {
621
626
  total: number;
622
627
  successful: number;
623
628
  };
624
629
  }
630
+ /** A registered relayer stored by the indexer. */
631
+ interface Relayer {
632
+ evmAddress: string;
633
+ account: string;
634
+ active: boolean;
635
+ registeredAtBlock: number;
636
+ unregisteredAtBlock: number | null;
637
+ timestampMs: number | null;
638
+ }
639
+ /** A relay fee accumulation or consumption event stored by the indexer. */
640
+ interface RelayFeeEvent {
641
+ id: number;
642
+ relayer: string;
643
+ assetId: string;
644
+ /** Amount as decimal string (bigint-safe). */
645
+ amount: string;
646
+ eventType: 'accumulated' | 'consumed';
647
+ blockNumber: number;
648
+ timestampMs: number | null;
649
+ }
650
+ /** Aggregated relay fee balance per asset for a given relayer. */
651
+ interface RelayFeeSummaryEntry {
652
+ assetId: string;
653
+ /** Total accumulated (bigint string). */
654
+ accumulated: string;
655
+ /** Total consumed (bigint string). */
656
+ consumed: string;
657
+ /** pending = accumulated − consumed (bigint string). */
658
+ pending: string;
659
+ }
660
+ /** A registered asset stored by the indexer. */
661
+ interface RegisteredAsset {
662
+ assetId: string;
663
+ name: string | null;
664
+ symbol: string | null;
665
+ decimals: number | null;
666
+ contractAddress: string | null;
667
+ /** Whether the asset is verified by the protocol. */
668
+ verified: boolean;
669
+ registeredAtBlock: number;
670
+ timestampMs: number | null;
671
+ }
625
672
  /**
626
673
  * A single shielded activity event tied to an address.
627
674
  * The `kind` discriminant identifies whether it is a shield (commitment),
@@ -771,6 +818,30 @@ declare class IndexerClient {
771
818
  page?: number;
772
819
  limit?: number;
773
820
  }): Promise<PaginatedResult<ShieldedAddressEvent>>;
821
+ /** Returns a paginated list of relayers. Filter by active status with `active`. */
822
+ getRelayers(params?: {
823
+ page?: number;
824
+ limit?: number;
825
+ active?: boolean;
826
+ }): Promise<PaginatedResult<Relayer>>;
827
+ /** Returns a single relayer by EVM address, or null if not found. */
828
+ getRelayer(evmAddress: string): Promise<Relayer | null>;
829
+ /** Returns a paginated list of relay fee events. */
830
+ getRelayFees(params?: {
831
+ page?: number;
832
+ limit?: number;
833
+ relayer?: string;
834
+ type?: 'accumulated' | 'consumed';
835
+ }): Promise<PaginatedResult<RelayFeeEvent>>;
836
+ /** Returns aggregated relay fee balances per asset for a given relayer account. */
837
+ getRelayFeesSummary(relayer: string): Promise<RelayFeeSummaryEntry[]>;
838
+ /** Returns a paginated list of assets registered via register_asset. */
839
+ getRegisteredAssets(params?: {
840
+ page?: number;
841
+ limit?: number;
842
+ }): Promise<PaginatedResult<RegisteredAsset>>;
843
+ /** Returns a single registered asset by its ID, or null if not found. */
844
+ getRegisteredAsset(assetId: string): Promise<RegisteredAsset | null>;
774
845
  /** Returns aggregated indexer statistics. */
775
846
  getStats(): Promise<IndexerStats>;
776
847
  /** Returns true if the indexer health endpoint responds OK. */
@@ -961,7 +1032,7 @@ type ShieldBatchParams = {
961
1032
  * Parameters for shieldedPool.claimShieldedFees —
962
1033
  * claims accrued relay fees into the shielded pool.
963
1034
  *
964
- * The relayer must supply a ZK disclosure proof that binds the commitment to the
1035
+ * The relayer must supply a ZK value proof that binds the commitment to the
965
1036
  * exact amount and asset_id, preventing fee inflation attacks.
966
1037
  */
967
1038
  type ClaimShieldedFeesParams = {
@@ -979,355 +1050,6 @@ type ClaimShieldedFeesParams = {
979
1050
  encryptedMemo: Uint8Array;
980
1051
  };
981
1052
 
982
- /**
983
- * TypeScript types for pallet-shielded-pool extrinsics and supporting structures.
984
- *
985
- * Conventions:
986
- * - Fixed/bounded byte arrays → `number[]` (SCALE-compatible)
987
- * - Balances (u128) → `bigint`
988
- * - AccountId → `string` (SS58 or 0x-prefixed 64-char hex)
989
- * - Block numbers → `number`
990
- * - Optional fields → `T | null`
991
- */
992
- /**
993
- * 32-byte SCALE-encoded value (commitment, nullifier, Merkle root, etc.).
994
- * Stored as little-endian Poseidon field elements on-chain.
995
- */
996
- type Bytes32 = number[];
997
- /**
998
- * 176-byte encrypted memo (ChaCha20-Poly1305 ECDH).
999
- * Layout: nonce(12) || ciphertext(132) || tag(16) || ephPk(32) = 176 bytes.
1000
- */
1001
- type Bytes176 = number[];
1002
- /**
1003
- * Disclosure public signals — exactly 256 bytes (ECDH Baby Jubjub layout):
1004
- * commitment[0..32] | auditor_pk_x[32..64] | auditor_pk_y[64..96]
1005
- * | epk_x[96..128] | epk_y[128..160] | enc_value[160..192]
1006
- * | enc_asset_id[192..224] | enc_owner_hash[224..256]
1007
- */
1008
- type DisclosurePublicSignals = number[];
1009
- /**
1010
- * ECDH-encrypted note fields stored on-chain after a successful disclosure.
1011
- * Maps to `EncryptedDisclosureSignals` in Rust.
1012
- */
1013
- type EncryptedDisclosureSignals = {
1014
- /** Ephemeral public key x-coordinate (Baby Jubjub), 32 bytes LE. */
1015
- epkX: number[];
1016
- /** Ephemeral public key y-coordinate (Baby Jubjub), 32 bytes LE. */
1017
- epkY: number[];
1018
- /** Encrypted note value (field element LE). 0 if not disclosed. */
1019
- encValue: number[];
1020
- /** Encrypted asset ID (field element LE). 0 if not disclosed. */
1021
- encAssetId: number[];
1022
- /** Encrypted Poseidon(owner_pubkey) (field element LE). 0 if not disclosed. */
1023
- encOwnerHash: number[];
1024
- };
1025
- /**
1026
- * Bitmap of which note fields the auditor requires to be disclosed.
1027
- * Maps to `DisclosureFieldMask` in Rust.
1028
- */
1029
- type DisclosureFieldMask = {
1030
- /** Must disclose the note value (amount in planck). */
1031
- value: boolean;
1032
- /** Must disclose the asset ID. */
1033
- assetId: boolean;
1034
- /** Must disclose Poseidon(owner_pubkey). */
1035
- owner: boolean;
1036
- };
1037
- /**
1038
- * A single auditor entry in an audit policy.
1039
- * Maps to `Auditor<AccountId>` in Rust.
1040
- */
1041
- type Auditor = {
1042
- /** SS58 or 0x-prefixed AccountId of the authorized auditor. */
1043
- account: string;
1044
- };
1045
- /**
1046
- * A condition that must be satisfied before disclosure is permitted.
1047
- * Maps to `DisclosureCondition` in Rust. Max 10 conditions per policy.
1048
- * Evaluation is OR — a single satisfied condition is enough.
1049
- */
1050
- type DisclosureCondition = {
1051
- type: 'Always';
1052
- } | {
1053
- type: 'TimeDelay';
1054
- afterBlock: number;
1055
- } | {
1056
- type: 'AmountThreshold';
1057
- minAmount: bigint;
1058
- };
1059
- /**
1060
- * A single entry in a batch disclosure proof submission.
1061
- * Maps to `BatchDisclosureSubmission<AccountId>` in Rust.
1062
- */
1063
- type BatchDisclosureSubmission = {
1064
- /** 32-byte commitment (LE). */
1065
- commitment: Bytes32;
1066
- /** Groth16 proof bytes — max 256 bytes. */
1067
- proof: number[];
1068
- /** 76-byte public signals: commitment(32) | value(8) | asset_id(4) | owner_hash(32). */
1069
- publicSignals: DisclosurePublicSignals;
1070
- /** Optional auditor AccountId. Null = voluntary disclosure. */
1071
- auditor: string | null;
1072
- };
1073
- /**
1074
- * A single shield operation for use in `shield_batch`.
1075
- */
1076
- type ShieldOperation = {
1077
- assetId: number;
1078
- amount: bigint;
1079
- /** 32-byte Poseidon commitment (LE). */
1080
- commitment: Bytes32;
1081
- /** Encrypted memo bytes — exactly 104 bytes. */
1082
- encryptedMemo: number[];
1083
- };
1084
- /**
1085
- * Call index 0 — `shield` (Signed origin)
1086
- * Deposits a public token amount into the shielded pool.
1087
- */
1088
- type ShieldArgs = {
1089
- assetId: number;
1090
- amount: bigint;
1091
- /** 32-byte Poseidon commitment (LE). */
1092
- commitment: Bytes32;
1093
- /** Encrypted memo — exactly 104 bytes. */
1094
- encryptedMemo: number[];
1095
- };
1096
- /**
1097
- * Call index 12 — `shield_batch` (Signed origin)
1098
- * Deposits multiple notes in a single extrinsic — max 20 operations.
1099
- */
1100
- type ShieldBatchArgs = {
1101
- operations: ShieldOperation[];
1102
- };
1103
- /** Input note consumed by a private transfer (SCALE wire format). */
1104
- type RawTransferInput = {
1105
- /** 32-byte Poseidon nullifier (LE). */
1106
- nullifier: Bytes32;
1107
- /** 32-byte Poseidon commitment (LE). */
1108
- commitment: Bytes32;
1109
- };
1110
- /** Output note created by a private transfer (SCALE wire format). */
1111
- type RawTransferOutput = {
1112
- /** 32-byte Poseidon commitment (LE). */
1113
- commitment: Bytes32;
1114
- /** Encrypted memo — exactly 104 bytes. */
1115
- memo: number[];
1116
- };
1117
- /**
1118
- * Call index 1 — `private_transfer` (Unsigned/gasless origin)
1119
- * Transfers value between notes without revealing sender, recipient or amount.
1120
- * Fee is embedded in the ZK proof: input_sum == output_sum + fee.
1121
- * The fee is paid to the block author (validator) by the pallet runtime.
1122
- */
1123
- type PrivateTransferArgs = {
1124
- /** Groth16 proof bytes — max 512 bytes. */
1125
- proof: number[];
1126
- /** 32-byte Merkle root (LE). */
1127
- merkleRoot: Bytes32;
1128
- nullifiers: RawTransferInput[];
1129
- outputs: RawTransferOutput[];
1130
- encryptedMemos: number[][];
1131
- /** Asset ID being transferred (public input of the proof). */
1132
- assetId: number;
1133
- /** Gasless fee in planck. Paid to the block author (validator). */
1134
- fee: bigint;
1135
- };
1136
- /**
1137
- * Call index 2 — `unshield` (Unsigned/gasless origin)
1138
- * Withdraws a note from the pool to a public account.
1139
- * Fee is embedded in the ZK proof: note_value == amount + fee + changeValue.
1140
- */
1141
- type UnshieldArgs = {
1142
- /** Groth16 proof bytes — max 512 bytes. */
1143
- proof: number[];
1144
- /** 32-byte Merkle root (LE). */
1145
- merkleRoot: Bytes32;
1146
- /** 32-byte nullifier of the spent note (LE). */
1147
- nullifier: Bytes32;
1148
- assetId: number;
1149
- /** Net amount recipient receives (planck). */
1150
- amount: bigint;
1151
- /** SS58 or 0x-prefixed AccountId of the recipient. */
1152
- recipient: string;
1153
- /** Gasless fee in planck. */
1154
- fee: bigint;
1155
- /**
1156
- * 32-byte change note commitment (LE). All zeros for total unshield.
1157
- * Must equal NoteCommitment(changeValue, assetId, changeOwnerPk, changeBlinding)
1158
- * when changeValue > 0 — enforced by the ZK circuit.
1159
- */
1160
- changeCommitment: Bytes32;
1161
- /**
1162
- * Encrypted memo for the change note (176 bytes, empty for total unshield).
1163
- * Enables note recovery via blockchain scan for partial unshield.
1164
- */
1165
- changeEncryptedMemo?: Bytes176;
1166
- };
1167
- /**
1168
- * Call index 4 — `set_audit_policy` (Signed origin)
1169
- * Registers or replaces the caller's audit policy for selective disclosure.
1170
- */
1171
- type SetAuditPolicyArgs = {
1172
- /** Up to 10 authorized auditors. */
1173
- auditors: Auditor[];
1174
- /** Up to 10 disclosure conditions. */
1175
- conditions: DisclosureCondition[];
1176
- /** Minimum blocks between disclosures to the same auditor. Null = no limit. */
1177
- maxFrequency: number | null;
1178
- /** Block after which the policy expires. Null = no expiry. */
1179
- validUntil: number | null;
1180
- };
1181
- /**
1182
- * Call index 5 — `request_disclosure` (Signed origin)
1183
- * Auditor requests selective disclosure from a target account for a specific commitment.
1184
- */
1185
- type RequestDisclosureArgs = {
1186
- /** AccountId of the disclosure target. */
1187
- target: string;
1188
- /** 32-byte commitment the auditor wants disclosed (LE). */
1189
- commitment: number[];
1190
- /** Which note fields must be revealed. */
1191
- requiredFields: DisclosureFieldMask;
1192
- /** Human-readable request reason — max 256 bytes UTF-8. */
1193
- reason: string;
1194
- /** Auditor's Baby Jubjub public key x-coordinate (32 bytes LE). */
1195
- auditorBjjPkX: number[];
1196
- /** Auditor's Baby Jubjub public key y-coordinate (32 bytes LE). */
1197
- auditorBjjPkY: number[];
1198
- };
1199
- /**
1200
- * Call index 6 — `disclose` (Signed origin)
1201
- * Submit a Groth16 disclosure proof for a commitment.
1202
- */
1203
- type DiscloseArgs = {
1204
- /** 32-byte note commitment to disclose (LE). */
1205
- commitment: Bytes32;
1206
- /** Groth16 proof bytes — max 128 bytes. */
1207
- proofBytes: number[];
1208
- /**
1209
- * 256-byte public signals (ECDH Baby Jubjub layout):
1210
- * commitment[0..32] | auditor_pk_x[32..64] | auditor_pk_y[64..96]
1211
- * | epk_x[96..128] | epk_y[128..160] | enc_value[160..192]
1212
- * | enc_asset_id[192..224] | enc_owner_hash[224..256]
1213
- * Use `buildDisclosurePublicSignals()` to construct this.
1214
- */
1215
- publicSignals: DisclosurePublicSignals;
1216
- /** Auditor AccountId — required (must match the DisclosureRequest). */
1217
- auditor: string;
1218
- };
1219
- /**
1220
- * Call index 7 — `reject_disclosure` (Signed origin)
1221
- * Disclosure target rejects a pending request from an auditor for a specific commitment.
1222
- */
1223
- type RejectDisclosureArgs = {
1224
- /** AccountId of the auditor whose request is rejected. */
1225
- auditor: string;
1226
- /** 32-byte commitment of the request being rejected (LE). */
1227
- commitment: number[];
1228
- /** Rejection reason — max 256 bytes UTF-8. */
1229
- reason: string;
1230
- };
1231
- /**
1232
- * Call index 13 — `batch_submit_disclosure_proofs` (Signed origin)
1233
- * Submit up to 10 disclosure proofs in one extrinsic.
1234
- */
1235
- type BatchSubmitDisclosureProofsArgs = {
1236
- submissions: BatchDisclosureSubmission[];
1237
- };
1238
- /**
1239
- * Call index 9 — `register_asset` (Root origin)
1240
- * Registers a new asset in the shielded pool registry.
1241
- */
1242
- type RegisterAssetArgs = {
1243
- /** Asset name — max 64 bytes UTF-8. */
1244
- name: string;
1245
- /** Asset ticker symbol, e.g. "USDT" — max 16 bytes UTF-8. */
1246
- symbol: string;
1247
- /** Token decimal precision (e.g. 18 for ORB, 6 for USDT). */
1248
- decimals: number;
1249
- /** 20-byte EVM contract address for ERC-20 assets. Null = native asset. */
1250
- contractAddress: number[] | null;
1251
- };
1252
- /**
1253
- * Call index 10 — `verify_asset` (Root origin)
1254
- * Marks a registered asset as verified, enabling shielding.
1255
- */
1256
- type VerifyAssetArgs = {
1257
- assetId: number;
1258
- };
1259
- /**
1260
- * Call index 11 — `unverify_asset` (Root origin)
1261
- * Removes the verified status from an asset, disabling new shield operations.
1262
- */
1263
- type UnverifyAssetArgs = {
1264
- assetId: number;
1265
- };
1266
- /**
1267
- * Call index 14 — `prune_expired_request` (Signed origin)
1268
- * Cleans up a disclosure request that has passed its expiration block.
1269
- */
1270
- type PruneExpiredRequestArgs = {
1271
- /** AccountId of the disclosure target. */
1272
- target: string;
1273
- /** AccountId of the auditor. */
1274
- auditor: string;
1275
- /** 32-byte commitment of the expired request (LE). */
1276
- commitment: number[];
1277
- };
1278
- /**
1279
- * Call index 15 — `revoke_disclosure_record` (Signed origin)
1280
- * Allows the note owner to revoke a previously submitted disclosure record.
1281
- */
1282
- type RevokeDisclosureRecordArgs = {
1283
- /** 32-byte commitment whose disclosure record should be revoked (LE). */
1284
- commitment: Bytes32;
1285
- };
1286
- /** All pallet-shielded-pool calls as a discriminated union. */
1287
- type ShieldedPoolCall = {
1288
- type: 'shield';
1289
- args: ShieldArgs;
1290
- } | {
1291
- type: 'shieldBatch';
1292
- args: ShieldBatchArgs;
1293
- } | {
1294
- type: 'privateTransfer';
1295
- args: PrivateTransferArgs;
1296
- } | {
1297
- type: 'unshield';
1298
- args: UnshieldArgs;
1299
- } | {
1300
- type: 'setAuditPolicy';
1301
- args: SetAuditPolicyArgs;
1302
- } | {
1303
- type: 'requestDisclosure';
1304
- args: RequestDisclosureArgs;
1305
- } | {
1306
- type: 'disclose';
1307
- args: DiscloseArgs;
1308
- } | {
1309
- type: 'rejectDisclosure';
1310
- args: RejectDisclosureArgs;
1311
- } | {
1312
- type: 'batchSubmitDisclosureProofs';
1313
- args: BatchSubmitDisclosureProofsArgs;
1314
- } | {
1315
- type: 'registerAsset';
1316
- args: RegisterAssetArgs;
1317
- } | {
1318
- type: 'verifyAsset';
1319
- args: VerifyAssetArgs;
1320
- } | {
1321
- type: 'unverifyAsset';
1322
- args: UnverifyAssetArgs;
1323
- } | {
1324
- type: 'pruneExpiredRequest';
1325
- args: PruneExpiredRequestArgs;
1326
- } | {
1327
- type: 'revokeDisclosureRecord';
1328
- args: RevokeDisclosureRecordArgs;
1329
- };
1330
-
1331
1053
  /**
1332
1054
  * High-level module for Orbinum shielded-pool operations.
1333
1055
  *
@@ -1370,43 +1092,11 @@ declare class ShieldedPoolModule {
1370
1092
  /**
1371
1093
  * Claims accrued relay fees into the shielded pool.
1372
1094
  * This is a SIGNED transaction — the relayer must sign it with their wallet.
1373
- * Before calling this, generate a ZK disclosure proof with generateFeeClaimProof().
1095
+ * Before calling this, generate a ZK value proof with generateFeeClaimProof() (not yet implemented).
1374
1096
  *
1375
1097
  * Extrinsic: shieldedPool.claim_shielded_fees(commitment, amount, asset_id, memo, proof, public_signals)
1376
1098
  */
1377
1099
  claimShieldedFees(params: ClaimShieldedFeesParams, signer: PolkadotSigner, txOptions?: UnsafeTxOptions): Promise<TxResult>;
1378
- /**
1379
- * Requests a selective disclosure from a target account for a specific commitment.
1380
- * The auditor's Baby Jubjub public key is included so the note owner knows
1381
- * which key to encrypt to when generating the proof.
1382
- * Extrinsic: shieldedPool.request_disclosure(target, commitment, required_fields,
1383
- * reason, auditor_bjj_pk_x, auditor_bjj_pk_y)
1384
- */
1385
- requestDisclosure(params: RequestDisclosureArgs, signer: PolkadotSigner, txOptions?: UnsafeTxOptions): Promise<TxResult>;
1386
- /**
1387
- * Submits a Groth16 ZK disclosure proof for a note commitment.
1388
- * The proof reveals the selected fields (value, asset_id, owner_hash) on-chain.
1389
- * Use generateDisclosureProof() + buildDisclosurePublicSignals() before calling this.
1390
- * Extrinsic: shieldedPool.disclose(commitment, proof_bytes, public_signals, auditor)
1391
- */
1392
- disclose(params: DiscloseArgs, signer: PolkadotSigner, txOptions?: UnsafeTxOptions): Promise<TxResult>;
1393
- /**
1394
- * Rejects a pending disclosure request from an auditor for a specific commitment.
1395
- * Extrinsic: shieldedPool.reject_disclosure(auditor, commitment, reason)
1396
- */
1397
- rejectDisclosure(params: RejectDisclosureArgs, signer: PolkadotSigner, txOptions?: UnsafeTxOptions): Promise<TxResult>;
1398
- /**
1399
- * Cleans up a disclosure request that has passed its expiration block.
1400
- * Permissionless — any account can prune expired requests.
1401
- * Extrinsic: shieldedPool.prune_expired_request(target, auditor, commitment)
1402
- */
1403
- pruneExpiredRequest(params: PruneExpiredRequestArgs, signer: PolkadotSigner, txOptions?: UnsafeTxOptions): Promise<TxResult>;
1404
- /**
1405
- * Revokes a previously submitted voluntary disclosure record.
1406
- * Only applies to self-disclosures (auditor = None). Auditor-requested records are permanent.
1407
- * Extrinsic: shieldedPool.revoke_disclosure_record(commitment)
1408
- */
1409
- revokeDisclosureRecord(params: RevokeDisclosureRecordArgs, signer: PolkadotSigner, txOptions?: UnsafeTxOptions): Promise<TxResult>;
1410
1100
  }
1411
1101
 
1412
1102
  /**
@@ -1656,6 +1346,20 @@ declare class AccountMappingModule {
1656
1346
  dispatchAsLinkedAccount(params: DispatchAsLinkedParams, signer: PolkadotSigner): Promise<TxResult>;
1657
1347
  }
1658
1348
 
1349
+ /**
1350
+ * Typed client for general chain state queries under the `chain_*` namespace.
1351
+ */
1352
+ declare class ChainModule {
1353
+ private readonly substrate;
1354
+ constructor(substrate: SubstrateClient);
1355
+ /**
1356
+ * Returns `true` if the given SS58 account is an active Aura validator.
1357
+ *
1358
+ * Reads `pallet_aura::Authorities` directly from storage at the best known block.
1359
+ */
1360
+ isValidator(ss58Address: string): Promise<boolean>;
1361
+ }
1362
+
1659
1363
  type RpcV2MerkleProof = {
1660
1364
  path: string[];
1661
1365
  leafIndex: number;
@@ -1811,70 +1515,6 @@ interface KnownPrecompileInfo {
1811
1515
  /** Map from 4-byte hex selector (no 0x prefix) to function signature. */
1812
1516
  functions: Record<string, string>;
1813
1517
  }
1814
- /**
1815
- * Parameters for `requestDisclosure`.
1816
- *
1817
- * The EVM caller of this transaction is treated as the **auditor** on-chain.
1818
- */
1819
- type RequestDisclosureParams = {
1820
- /** AccountId32 of the note owner (target), as a 0x-prefixed 64-hex-char string. */
1821
- target: string;
1822
- /** Note commitment, as a 0x-prefixed 64-hex-char string. */
1823
- commitment: string;
1824
- /** Whether to request disclosure of the note value. */
1825
- disclosedValue: boolean;
1826
- /** Whether to request disclosure of the asset ID. */
1827
- disclosedAssetId: boolean;
1828
- /** Whether to request disclosure of the note owner hash. */
1829
- disclosedOwner: boolean;
1830
- /** Human-readable reason (UTF-8, max 256 bytes). */
1831
- reason: string;
1832
- /** Auditor's Baby Jubjub public key X coordinate (32 bytes). */
1833
- auditorBjjPkX: Uint8Array;
1834
- /** Auditor's Baby Jubjub public key Y coordinate (32 bytes). */
1835
- auditorBjjPkY: Uint8Array;
1836
- };
1837
- /**
1838
- * Parameters for `disclose`.
1839
- *
1840
- * The EVM caller of this transaction is treated as the **note owner** on-chain.
1841
- */
1842
- type DiscloseParams = {
1843
- /** Note commitment, as a 0x-prefixed 64-hex-char string. */
1844
- commitment: string;
1845
- /** 128-byte serialised Groth16 proof. */
1846
- proofBytes: Uint8Array;
1847
- /** 256-byte ECDH-encrypted disclosure signals from the circuit. */
1848
- publicSignals: Uint8Array;
1849
- /** AccountId32 of the auditor, as a 0x-prefixed 64-hex-char string. */
1850
- auditor: string;
1851
- };
1852
- /**
1853
- * Parameters for `rejectDisclosure`.
1854
- *
1855
- * The EVM caller of this transaction is treated as the **target** (note owner) on-chain.
1856
- */
1857
- type RejectDisclosureParams = {
1858
- /** AccountId32 of the auditor who sent the request, as a 0x-prefixed 64-hex-char string. */
1859
- auditor: string;
1860
- /** Note commitment, as a 0x-prefixed 64-hex-char string. */
1861
- commitment: string;
1862
- /** Human-readable rejection reason (UTF-8, max 256 bytes). */
1863
- reason: string;
1864
- };
1865
- /**
1866
- * Parameters for `pruneExpiredRequest`.
1867
- *
1868
- * Permissionless: any EVM caller can prune an expired disclosure request.
1869
- */
1870
- type PruneExpiredRequestParams = {
1871
- /** AccountId32 of the note owner, as a 0x-prefixed 64-hex-char string. */
1872
- target: string;
1873
- /** AccountId32 of the auditor, as a 0x-prefixed 64-hex-char string. */
1874
- auditor: string;
1875
- /** Note commitment, as a 0x-prefixed 64-hex-char string. */
1876
- commitment: string;
1877
- };
1878
1518
 
1879
1519
  /**
1880
1520
  * Bindings for the `ShieldedPoolPrecompile` at address `0x...0801`.
@@ -1960,66 +1600,41 @@ declare class ShieldedPoolPrecompile {
1960
1600
  estimateUnshieldGas(params: UnshieldParams, from: string): Promise<bigint>;
1961
1601
  /**
1962
1602
  * Returns the ABI-encoded calldata for
1963
- * `requestDisclosure(bytes32,bytes32,bool,bool,bool,bytes,bytes32,bytes32)`.
1964
- *
1965
- * The **EVM caller** of the resulting transaction is treated as the **auditor**
1966
- * on-chain. No explicit auditor argument is needed.
1967
- */
1968
- buildRequestDisclosureCalldata(params: RequestDisclosureParams): string;
1969
- /**
1970
- * Requests selective disclosure of a specific commitment.
1971
- *
1972
- * The EVM caller is recorded as the auditor on-chain. The note owner can
1973
- * respond with `disclose()` or reject with `rejectDisclosure()`.
1974
- *
1975
- * Extrinsic: `shieldedPool.requestDisclosure(target, commitment, requiredFields, reason, bjjPkX, bjjPkY)`
1976
- */
1977
- requestDisclosure(params: RequestDisclosureParams, signer: EvmSigner): Promise<string>;
1978
- /**
1979
- * Returns the ABI-encoded calldata for `disclose(bytes32,bytes,bytes,bytes32)`.
1980
- *
1981
- * The **EVM caller** is treated as the **note owner** on-chain.
1982
- * `params.proofBytes` must be exactly 128 bytes; `params.publicSignals` exactly 256 bytes.
1983
- */
1984
- buildDiscloseCalldata(params: DiscloseParams): string;
1985
- /**
1986
- * Submits a selective disclosure proof for a commitment.
1603
+ * `claimShieldedFees(bytes32,uint256,uint32,bytes,bytes,bytes)`.
1987
1604
  *
1988
- * The EVM caller is treated as the note owner on-chain. The Groth16 proof is
1989
- * verified by the runtime; on success the encrypted signals are stored for
1990
- * the auditor to decrypt off-chain.
1605
+ * ABI layout (params after selector):
1606
+ * - `commitment` — bytes32 (fixed)
1607
+ * - `amount` — uint256 (fixed)
1608
+ * - `asset_id` — uint32 (fixed, right-aligned)
1609
+ * - `memo` — bytes (dynamic)
1610
+ * - `proof` — bytes (dynamic, 128 bytes Groth16)
1611
+ * - `publicSignals` — bytes (dynamic, 76 bytes)
1991
1612
  *
1992
- * Extrinsic: `shieldedPool.disclose(commitment, proofBytes, publicSignals, auditor)`
1613
+ * The validator identity is derived from `msg.sender` in the precompile —
1614
+ * do NOT include it in the calldata.
1993
1615
  */
1994
- disclose(params: DiscloseParams, signer: EvmSigner): Promise<string>;
1616
+ buildClaimShieldedFeesCalldata(params: ClaimShieldedFeesParams): string;
1995
1617
  /**
1996
- * Returns the ABI-encoded calldata for `rejectDisclosure(bytes32,bytes32,bytes)`.
1618
+ * Claims accumulated relay fees as a private shielded note.
1997
1619
  *
1998
- * The **EVM caller** is treated as the **target** (note owner) on-chain.
1999
- */
2000
- buildRejectDisclosureCalldata(params: RejectDisclosureParams): string;
2001
- /**
2002
- * Rejects a pending disclosure request.
1620
+ * This extrinsic is for **validators/relayers** who have accrued fees in
1621
+ * `pallet-relayer` and want to receive them privately inside the shielded pool
1622
+ * instead of as a public balance credit.
2003
1623
  *
2004
- * The EVM caller is treated as the note owner (target) on-chain.
1624
+ * The ZK `value_proof` binds `commitment` to `(amount, assetId, ownerPk, blinding)`
1625
+ * so the runtime can verify the note encodes exactly the claimed fee amount,
1626
+ * preventing a malicious relayer from inflating the withdrawal.
2005
1627
  *
2006
- * Extrinsic: `shieldedPool.rejectDisclosure(auditor, commitment, reason)`
2007
- */
2008
- rejectDisclosure(params: RejectDisclosureParams, signer: EvmSigner): Promise<string>;
2009
- /**
2010
- * Returns the ABI-encoded calldata for `pruneExpiredRequest(bytes32,bytes32,bytes32)`.
1628
+ * The `msg.sender` EVM address is used as the validator identity; it must match
1629
+ * the address that has pending relay fees in `pallet-relayer`.
2011
1630
  *
2012
- * Permissionless: any EVM caller can prune an expired request.
1631
+ * Extrinsic: `shieldedPool.claim_shielded_fees(commitment, amount, assetId, memo, proof, publicSignals)`
2013
1632
  */
2014
- buildPruneExpiredRequestCalldata(params: PruneExpiredRequestParams): string;
1633
+ claimShieldedFees(params: ClaimShieldedFeesParams, signer: EvmSigner): Promise<string>;
2015
1634
  /**
2016
- * Removes an expired disclosure request from storage.
2017
- *
2018
- * Permissionless: any EVM account can call this once `expires_at` has passed.
2019
- *
2020
- * Extrinsic: `shieldedPool.pruneExpiredRequest(target, auditor, commitment)`
1635
+ * Estimates the EVM gas for a `claimShieldedFees` call.
2021
1636
  */
2022
- pruneExpiredRequest(params: PruneExpiredRequestParams, signer: EvmSigner): Promise<string>;
1637
+ estimateClaimShieldedFeesGas(params: ClaimShieldedFeesParams, from: string): Promise<bigint>;
2023
1638
  }
2024
1639
 
2025
1640
  /**
@@ -2295,6 +1910,8 @@ declare class OrbinumClient {
2295
1910
  readonly accountMapping: AccountMappingModule;
2296
1911
  /** Typed access to `privacy_*` custom RPC endpoints. */
2297
1912
  readonly privacy: PrivacyModule;
1913
+ /** Typed access to general chain state via `chain_*` custom RPC endpoints. */
1914
+ readonly chain: ChainModule;
2298
1915
  /** Typed access to `zkVerifier_*` custom RPC endpoints. */
2299
1916
  readonly zkVerifier: ZkVerifierModule;
2300
1917
  /** Typed access to `relayer_*` RPC endpoints (registry lookup and pending fee queries). */
@@ -2654,6 +2271,71 @@ declare function tryDecryptNoteVerbose(commitment: ScanCommitment, viewingSecret
2654
2271
  reason?: string;
2655
2272
  };
2656
2273
 
2274
+ /**
2275
+ * NoteDisclosure
2276
+ *
2277
+ * Utilities for creating and decoding single-note disclosure keys.
2278
+ * A disclosure key is a compact, shareable string encoding the plaintext
2279
+ * preimage of one specific note commitment. Anyone with the key can verify
2280
+ * the note's value and asset — without gaining any spending capability.
2281
+ *
2282
+ * Format: "orbdisc:<base64url(JSON)>"
2283
+ *
2284
+ * Revealed by the key:
2285
+ * - value, assetId, ownerPk (BJJ Ax — not linked to EVM address), blinding
2286
+ * - commitment (cryptographically verified via Poseidon4)
2287
+ *
2288
+ * NOT revealed by the key:
2289
+ * - spendingKey, nullifier, viewingSecretKey
2290
+ * - any other note belonging to the same user
2291
+ *
2292
+ * Security: the commitment verification in decodeNoteDisclosureKey is a
2293
+ * cryptographic proof-of-knowledge of the preimage. A forged key (mismatched
2294
+ * preimage) will fail verification and return null.
2295
+ */
2296
+
2297
+ /**
2298
+ * Decoded and cryptographically verified contents of a note disclosure key.
2299
+ *
2300
+ * The `commitment` field is guaranteed to equal Poseidon4(value, assetId, ownerPk, blinding)
2301
+ * — this is verified by decodeNoteDisclosureKey before returning.
2302
+ */
2303
+ interface NoteDisclosure {
2304
+ /** Poseidon4(value, assetId, ownerPk, blinding) — matches the on-chain commitment. */
2305
+ commitment: bigint;
2306
+ /** Note value in the smallest unit (e.g. attoORB). */
2307
+ value: bigint;
2308
+ /** Asset ID as registered in the shielded pool. */
2309
+ assetId: bigint;
2310
+ /** BabyJubJub Ax coordinate of the note owner (not directly linkable to an EVM address). */
2311
+ ownerPk: bigint;
2312
+ /** Random blinding scalar chosen at note creation. */
2313
+ blinding: bigint;
2314
+ }
2315
+ /**
2316
+ * Encodes a single ZkNote's plaintext preimage into a shareable disclosure key.
2317
+ *
2318
+ * The key does NOT include the spendingKey or nullifier. It is safe to share
2319
+ * with any party that should be able to verify the note's value and asset
2320
+ * without being able to spend it.
2321
+ *
2322
+ * @param note A fully populated ZkNote (as returned by the vault / rescan).
2323
+ * @returns A "orbdisc:…" string suitable for copy-paste or QR encoding.
2324
+ */
2325
+ declare function createNoteDisclosureKey(note: ZkNote): string;
2326
+ /**
2327
+ * Decodes and cryptographically verifies a note disclosure key.
2328
+ *
2329
+ * Verification: recomputes Poseidon4(value, assetId, ownerPk, blinding) and
2330
+ * asserts it equals the embedded commitment. This ensures the preimage is
2331
+ * consistent and cannot be tampered with.
2332
+ *
2333
+ * @param key A "orbdisc:…" string produced by createNoteDisclosureKey.
2334
+ * @returns The verified NoteDisclosure, or null if the key is malformed,
2335
+ * has an unknown version, or fails Poseidon4 verification.
2336
+ */
2337
+ declare function decodeNoteDisclosureKey(key: string): NoteDisclosure | null;
2338
+
2657
2339
  /** A single input note for a private transfer. */
2658
2340
  interface TransferInputNote {
2659
2341
  nullifier: bigint;
@@ -2721,95 +2403,6 @@ declare function selectNotes(notes: ZkNote[], needed: bigint): [ZkNote, ZkNote |
2721
2403
  */
2722
2404
  declare function buildDummyTransferInput(assetId: bigint): TransferInputNote;
2723
2405
 
2724
- /**
2725
- * Selective disclosure helpers for the Orbinum shielded pool (ECDH Baby Jubjub protocol).
2726
- *
2727
- * ## Public signals layout (256 bytes on-chain)
2728
- * ```
2729
- * [0..32] commitment — Poseidon4(value, asset_id, owner_pk, blinding) LE
2730
- * [32..64] auditor_pk_x — Baby Jubjub pk_A.x LE
2731
- * [64..96] auditor_pk_y — Baby Jubjub pk_A.y LE
2732
- * [96..128] epk_x — r·G x-coordinate LE
2733
- * [128..160] epk_y — r·G y-coordinate LE
2734
- * [160..192] enc_value — masked_value + k0
2735
- * [192..224] enc_asset_id — masked_asset_id + k1
2736
- * [224..256] enc_owner_hash — masked_owner_hash + k2
2737
- * ```
2738
- *
2739
- * The runtime verifies the Groth16 proof against the ciphertext.
2740
- * It never decrypts. Decryption is off-chain with the auditor's BJJ sk.
2741
- */
2742
-
2743
- /**
2744
- * Derives a Baby Jubjub keypair deterministically from a Substrate signing key.
2745
- *
2746
- * ```
2747
- * bjj_sk = Poseidon(substrate_signing_key) // one-way; does not expose the substrate key
2748
- * bjj_pk = bjj_sk · G // Baby Jubjub base point
2749
- * ```
2750
- *
2751
- * The `bjj_pk` is registered in `DisclosureRequest` on-chain so the note owner
2752
- * knows which key to encrypt to.
2753
- *
2754
- * @param substrateSigningKey - Raw 32-byte Substrate signing key (sr25519 or ed25519).
2755
- * @returns `{ sk, pkX, pkY }` — Baby Jubjub secret scalar and public key coordinates.
2756
- */
2757
- declare function deriveBabyJubjubKeypair(substrateSigningKey: Uint8Array): {
2758
- sk: bigint;
2759
- pkX: bigint;
2760
- pkY: bigint;
2761
- };
2762
- /**
2763
- * Packs the 8 public signals into the 256-byte buffer for the `disclose` extrinsic.
2764
- *
2765
- * Layout:
2766
- * ```
2767
- * [0..32] commitment — 32-byte LE (0x-hex string)
2768
- * [32..64] auditor_pk_x — 32-byte LE bigint
2769
- * [64..96] auditor_pk_y — 32-byte LE bigint
2770
- * [96..128] epk_x — from proofOutput.encryptedData.epkX
2771
- * [128..160] epk_y — from proofOutput.encryptedData.epkY
2772
- * [160..192] enc_value — from proofOutput.encryptedData.encValue
2773
- * [192..224] enc_asset_id — from proofOutput.encryptedData.encAssetId
2774
- * [224..256] enc_owner_hash — from proofOutput.encryptedData.encOwnerHash
2775
- * ```
2776
- *
2777
- * @param commitment - 0x-prefixed 32-byte hex commitment.
2778
- * @param auditorPkX - Auditor's Baby Jubjub pk x-coordinate (bigint LE).
2779
- * @param auditorPkY - Auditor's Baby Jubjub pk y-coordinate (bigint LE).
2780
- * @param proofOutput - Output of `generateDisclosureProof`.
2781
- * @returns `number[]` — 256 bytes, SCALE-compatible.
2782
- */
2783
- declare function buildDisclosurePublicSignals(commitment: string, auditorPkX: bigint, auditorPkY: bigint, proofOutput: DisclosureProofOutput): number[];
2784
- /**
2785
- * Decrypts encrypted disclosure signals using the auditor's Baby Jubjub secret key.
2786
- *
2787
- * ```
2788
- * shared = sk_A · epk (ECDH — Baby Jubjub scalar mult)
2789
- * k_i = Poseidon(shared.x, shared.y, i)
2790
- * plaintext_i = (enc_i - k_i + BN254_R) % BN254_R
2791
- * ```
2792
- *
2793
- * Only the intended auditor (holder of `auditorBjjSk`) can decrypt.
2794
- * This runs entirely off-chain — the runtime never sees or derives `sk`.
2795
- *
2796
- * @param auditorBjjSk - Auditor's Baby Jubjub secret scalar (from `deriveBabyJubjubKeypair`).
2797
- * @param enc - Encrypted signals from `DisclosureRecord.signals` (as bigints).
2798
- * @returns `{ value, assetId, ownerHash }` — decrypted field elements.
2799
- * If a field was not disclosed, its ciphertext is `k_i` and the plaintext decrypts to `0`.
2800
- */
2801
- declare function decryptDisclosureSignals(auditorBjjSk: bigint, enc: {
2802
- epkX: bigint;
2803
- epkY: bigint;
2804
- encValue: bigint;
2805
- encAssetId: bigint;
2806
- encOwnerHash: bigint;
2807
- }): {
2808
- value: bigint;
2809
- assetId: bigint;
2810
- ownerHash: bigint;
2811
- };
2812
-
2813
2406
  /**
2814
2407
  * BN254 (alt_bn128) scalar field prime.
2815
2408
  *
@@ -3262,7 +2855,7 @@ interface FeeClaimProofOutput {
3262
2855
  publicSignals: number[];
3263
2856
  }
3264
2857
  /**
3265
- * Generate a Groth16 fee-claim proof using the disclosure circuit.
2858
+ * Generate a Groth16 fee-claim proof using the value_proof circuit.
3266
2859
  *
3267
2860
  * The resulting proof convinces the pallet that:
3268
2861
  * 1. The caller knows (amount, assetId, ownerPubkey, blinding) such that
@@ -3274,12 +2867,6 @@ interface FeeClaimProofOutput {
3274
2867
  * @param options.provider - Override the artifact provider (default: CDN).
3275
2868
  * @param options.verbose - Log proof generation steps to console.
3276
2869
  */
3277
- /**
3278
- * @deprecated Tech debt — `fees.rs` uses the OLD 76-byte plaintext disclosure layout,
3279
- * but the disclosure circuit now uses ECDH encryption (256-byte layout).
3280
- * This function compiles but the resulting proof WILL BE REJECTED by the pallet.
3281
- * See `frame/shielded-pool/src/operations/fees.rs` comment for resolution options A/B/C.
3282
- */
3283
2870
  declare function generateFeeClaimProof(inputs: FeeClaimProofInputs, options?: {
3284
2871
  provider?: ArtifactProvider;
3285
2872
  verbose?: boolean;
@@ -3412,72 +2999,6 @@ type MerkleRootUpdatedEvent = {
3412
2999
  /** Total number of leaves after the update. */
3413
3000
  treeSize: number;
3414
3001
  };
3415
- /**
3416
- * Emitted by `set_audit_policy()` when an account sets or updates its audit policy.
3417
- * Rust variant: `AuditPolicySet { account, version }`
3418
- */
3419
- type AuditPolicySetEvent = {
3420
- /** SS58 AccountId of the policy owner. */
3421
- account: string;
3422
- /** Policy version number (monotonically increasing). */
3423
- version: number;
3424
- };
3425
- /**
3426
- * Emitted by `disclose()` when a note is disclosed.
3427
- * Rust variant: `Disclosed { who, commitment, auditor }`
3428
- */
3429
- type DisclosedEvent = {
3430
- /** SS58 AccountId of the discloser. */
3431
- who: string;
3432
- /** 0x-prefixed 32-byte commitment of the disclosed note. */
3433
- commitment: string;
3434
- /** SS58 AccountId of the auditor, or null for voluntary disclosure. */
3435
- auditor: string | null;
3436
- };
3437
- /**
3438
- * Emitted by `request_disclosure()` when an auditor requests a note disclosure.
3439
- * Rust variant: `DisclosureRequested { target, auditor, reason }`
3440
- */
3441
- type DisclosureRequestedEvent = {
3442
- /** SS58 AccountId of the note owner (disclosure target). */
3443
- target: string;
3444
- /** SS58 AccountId of the requesting auditor. */
3445
- auditor: string;
3446
- /** Reason string (max 256 bytes, UTF-8). */
3447
- reason: string;
3448
- };
3449
- /**
3450
- * Emitted by `reject_disclosure()` when a note owner rejects a disclosure request.
3451
- * Rust variant: `DisclosureRejected { target, auditor, reason }`
3452
- */
3453
- type DisclosureRejectedEvent = {
3454
- /** SS58 AccountId of the note owner. */
3455
- target: string;
3456
- /** SS58 AccountId of the auditor whose request was rejected. */
3457
- auditor: string;
3458
- /** Rejection reason string (max 256 bytes, UTF-8). */
3459
- reason: string;
3460
- };
3461
- /**
3462
- * Emitted when a pending disclosure request expires (on_finalize pruning).
3463
- * Rust variant: `DisclosureRequestExpired { target, auditor }`
3464
- */
3465
- type DisclosureRequestExpiredEvent = {
3466
- /** SS58 AccountId of the note owner. */
3467
- target: string;
3468
- /** SS58 AccountId of the auditor. */
3469
- auditor: string;
3470
- };
3471
- /**
3472
- * Emitted by `revoke_disclosure_record()` when an account revokes a previous disclosure.
3473
- * Rust variant: `DisclosureRecordRevoked { who, commitment }`
3474
- */
3475
- type DisclosureRecordRevokedEvent = {
3476
- /** SS58 AccountId of the note owner. */
3477
- who: string;
3478
- /** 0x-prefixed 32-byte commitment of the revoked note. */
3479
- commitment: string;
3480
- };
3481
3002
  /**
3482
3003
  * Emitted by `register_asset()` when a new asset is registered in the pool.
3483
3004
  * Rust variant: `AssetRegistered { asset_id }`
@@ -3515,24 +3036,6 @@ type ShieldedPoolEvent = {
3515
3036
  } | {
3516
3037
  type: 'MerkleRootUpdated';
3517
3038
  data: MerkleRootUpdatedEvent;
3518
- } | {
3519
- type: 'AuditPolicySet';
3520
- data: AuditPolicySetEvent;
3521
- } | {
3522
- type: 'Disclosed';
3523
- data: DisclosedEvent;
3524
- } | {
3525
- type: 'DisclosureRequested';
3526
- data: DisclosureRequestedEvent;
3527
- } | {
3528
- type: 'DisclosureRejected';
3529
- data: DisclosureRejectedEvent;
3530
- } | {
3531
- type: 'DisclosureRequestExpired';
3532
- data: DisclosureRequestExpiredEvent;
3533
- } | {
3534
- type: 'DisclosureRecordRevoked';
3535
- data: DisclosureRecordRevokedEvent;
3536
3039
  } | {
3537
3040
  type: 'AssetRegistered';
3538
3041
  data: AssetRegisteredEvent;
@@ -3563,14 +3066,14 @@ type CircuitId = (typeof CircuitId)[keyof typeof CircuitId];
3563
3066
  * |--------------|-------|---------------------------------|
3564
3067
  * | Transfer | 1 | 2-in-2-out private transfer |
3565
3068
  * | Unshield | 2 | Withdrawal from the pool |
3566
- * | Disclosure | 3 | Selective disclosure |
3567
- * | PrivateLink | 4 | Private chain-link proof |
3069
+ * | ValueProof | 4 | Note value binding (fee-claim) |
3070
+ * | PrivateLink | 5 | Private chain-link proof |
3568
3071
  */
3569
3072
  declare const CircuitId: {
3570
3073
  readonly Transfer: 1;
3571
3074
  readonly Unshield: 2;
3572
- readonly Disclosure: 3;
3573
- readonly PrivateLink: 4;
3075
+ readonly ValueProof: 4;
3076
+ readonly PrivateLink: 5;
3574
3077
  };
3575
3078
  /**
3576
3079
  * A single verification key registration entry used in batch operations.
@@ -3625,7 +3128,7 @@ type VerifyProofArgs = {
3625
3128
  * Number and meaning of inputs depends on the circuit:
3626
3129
  * - Transfer: [merkle_root, nullifier_0, nullifier_1, commitment_0, commitment_1]
3627
3130
  * - Unshield: [merkle_root, nullifier, amount_fe, recipient_hash, asset_id_fe]
3628
- * - Disclosure: [commitment, revealed_value_fe, revealed_asset_id_fe, owner_hash]
3131
+ * - ValueProof: [commitment, value, asset_id, owner_hash]
3629
3132
  * - PrivateLink: [commitment, call_hash_fe]
3630
3133
  */
3631
3134
  publicInputs: number[][];
@@ -4195,6 +3698,172 @@ type AccountMappingEvent = {
4195
3698
  data: PrivateLinkDispatchExecutedEvent;
4196
3699
  };
4197
3700
 
3701
+ /**
3702
+ * TypeScript types for pallet-shielded-pool extrinsics and supporting structures.
3703
+ *
3704
+ * Conventions:
3705
+ * - Fixed/bounded byte arrays → `number[]` (SCALE-compatible)
3706
+ * - Balances (u128) → `bigint`
3707
+ * - AccountId → `string` (SS58 or 0x-prefixed 64-char hex)
3708
+ * - Block numbers → `number`
3709
+ * - Optional fields → `T | null`
3710
+ */
3711
+ /**
3712
+ * 32-byte SCALE-encoded value (commitment, nullifier, Merkle root, etc.).
3713
+ * Stored as little-endian Poseidon field elements on-chain.
3714
+ */
3715
+ type Bytes32 = number[];
3716
+ /**
3717
+ * 176-byte encrypted memo (ChaCha20-Poly1305 ECDH).
3718
+ * Layout: nonce(12) || ciphertext(132) || tag(16) || ephPk(32) = 176 bytes.
3719
+ */
3720
+ type Bytes176 = number[];
3721
+ /**
3722
+ * A single shield operation for use in `shield_batch`.
3723
+ */
3724
+ type ShieldOperation = {
3725
+ assetId: number;
3726
+ amount: bigint;
3727
+ /** 32-byte Poseidon commitment (LE). */
3728
+ commitment: Bytes32;
3729
+ /** Encrypted memo bytes — exactly 104 bytes. */
3730
+ encryptedMemo: number[];
3731
+ };
3732
+ /**
3733
+ * Call index 0 — `shield` (Signed origin)
3734
+ * Deposits a public token amount into the shielded pool.
3735
+ */
3736
+ type ShieldArgs = {
3737
+ assetId: number;
3738
+ amount: bigint;
3739
+ /** 32-byte Poseidon commitment (LE). */
3740
+ commitment: Bytes32;
3741
+ /** Encrypted memo — exactly 104 bytes. */
3742
+ encryptedMemo: number[];
3743
+ };
3744
+ /**
3745
+ * Call index 12 — `shield_batch` (Signed origin)
3746
+ * Deposits multiple notes in a single extrinsic — max 20 operations.
3747
+ */
3748
+ type ShieldBatchArgs = {
3749
+ operations: ShieldOperation[];
3750
+ };
3751
+ /** Input note consumed by a private transfer (SCALE wire format). */
3752
+ type RawTransferInput = {
3753
+ /** 32-byte Poseidon nullifier (LE). */
3754
+ nullifier: Bytes32;
3755
+ /** 32-byte Poseidon commitment (LE). */
3756
+ commitment: Bytes32;
3757
+ };
3758
+ /** Output note created by a private transfer (SCALE wire format). */
3759
+ type RawTransferOutput = {
3760
+ /** 32-byte Poseidon commitment (LE). */
3761
+ commitment: Bytes32;
3762
+ /** Encrypted memo — exactly 104 bytes. */
3763
+ memo: number[];
3764
+ };
3765
+ /**
3766
+ * Call index 1 — `private_transfer` (Unsigned/gasless origin)
3767
+ * Transfers value between notes without revealing sender, recipient or amount.
3768
+ * Fee is embedded in the ZK proof: input_sum == output_sum + fee.
3769
+ * The fee is paid to the block author (validator) by the pallet runtime.
3770
+ */
3771
+ type PrivateTransferArgs = {
3772
+ /** Groth16 proof bytes — max 512 bytes. */
3773
+ proof: number[];
3774
+ /** 32-byte Merkle root (LE). */
3775
+ merkleRoot: Bytes32;
3776
+ nullifiers: RawTransferInput[];
3777
+ outputs: RawTransferOutput[];
3778
+ encryptedMemos: number[][];
3779
+ /** Asset ID being transferred (public input of the proof). */
3780
+ assetId: number;
3781
+ /** Gasless fee in planck. Paid to the block author (validator). */
3782
+ fee: bigint;
3783
+ };
3784
+ /**
3785
+ * Call index 2 — `unshield` (Unsigned/gasless origin)
3786
+ * Withdraws a note from the pool to a public account.
3787
+ * Fee is embedded in the ZK proof: note_value == amount + fee + changeValue.
3788
+ */
3789
+ type UnshieldArgs = {
3790
+ /** Groth16 proof bytes — max 512 bytes. */
3791
+ proof: number[];
3792
+ /** 32-byte Merkle root (LE). */
3793
+ merkleRoot: Bytes32;
3794
+ /** 32-byte nullifier of the spent note (LE). */
3795
+ nullifier: Bytes32;
3796
+ assetId: number;
3797
+ /** Net amount recipient receives (planck). */
3798
+ amount: bigint;
3799
+ /** SS58 or 0x-prefixed AccountId of the recipient. */
3800
+ recipient: string;
3801
+ /** Gasless fee in planck. */
3802
+ fee: bigint;
3803
+ /**
3804
+ * 32-byte change note commitment (LE). All zeros for total unshield.
3805
+ * Must equal NoteCommitment(changeValue, assetId, changeOwnerPk, changeBlinding)
3806
+ * when changeValue > 0 — enforced by the ZK circuit.
3807
+ */
3808
+ changeCommitment: Bytes32;
3809
+ /**
3810
+ * Encrypted memo for the change note (176 bytes, empty for total unshield).
3811
+ * Enables note recovery via blockchain scan for partial unshield.
3812
+ */
3813
+ changeEncryptedMemo?: Bytes176;
3814
+ };
3815
+ /**
3816
+ * Call index 9 — `register_asset` (Root origin)
3817
+ * Registers a new asset in the shielded pool registry.
3818
+ */
3819
+ type RegisterAssetArgs = {
3820
+ /** Asset name — max 64 bytes UTF-8. */
3821
+ name: string;
3822
+ /** Asset ticker symbol, e.g. "USDT" — max 16 bytes UTF-8. */
3823
+ symbol: string;
3824
+ /** Token decimal precision (e.g. 18 for ORB, 6 for USDT). */
3825
+ decimals: number;
3826
+ /** 20-byte EVM contract address for ERC-20 assets. Null = native asset. */
3827
+ contractAddress: number[] | null;
3828
+ };
3829
+ /**
3830
+ * Call index 10 — `verify_asset` (Root origin)
3831
+ * Marks a registered asset as verified, enabling shielding.
3832
+ */
3833
+ type VerifyAssetArgs = {
3834
+ assetId: number;
3835
+ };
3836
+ /**
3837
+ * Call index 11 — `unverify_asset` (Root origin)
3838
+ * Removes the verified status from an asset, disabling new shield operations.
3839
+ */
3840
+ type UnverifyAssetArgs = {
3841
+ assetId: number;
3842
+ };
3843
+ /** All pallet-shielded-pool calls as a discriminated union. */
3844
+ type ShieldedPoolCall = {
3845
+ type: 'shield';
3846
+ args: ShieldArgs;
3847
+ } | {
3848
+ type: 'shieldBatch';
3849
+ args: ShieldBatchArgs;
3850
+ } | {
3851
+ type: 'privateTransfer';
3852
+ args: PrivateTransferArgs;
3853
+ } | {
3854
+ type: 'unshield';
3855
+ args: UnshieldArgs;
3856
+ } | {
3857
+ type: 'registerAsset';
3858
+ args: RegisterAssetArgs;
3859
+ } | {
3860
+ type: 'verifyAsset';
3861
+ args: VerifyAssetArgs;
3862
+ } | {
3863
+ type: 'unverifyAsset';
3864
+ args: UnverifyAssetArgs;
3865
+ };
3866
+
4198
3867
  /**
4199
3868
  * Options for {@link formatBalance}.
4200
3869
  */
@@ -4497,30 +4166,6 @@ interface DecodedUnshieldArgs {
4497
4166
  amount: string;
4498
4167
  recipient: string;
4499
4168
  }
4500
- interface DecodedRequestDisclosureArgs {
4501
- target: string;
4502
- commitment: string;
4503
- required_fields: {
4504
- value: boolean;
4505
- asset_id: boolean;
4506
- owner: boolean;
4507
- };
4508
- reason: string;
4509
- auditor_bjj_pk_x: string;
4510
- auditor_bjj_pk_y: string;
4511
- }
4512
- interface DecodedRejectDisclosureArgs {
4513
- auditor: string;
4514
- commitment: string;
4515
- reason: string;
4516
- }
4517
- interface DecodedSubmitDisclosureArgs {
4518
- commitment: string;
4519
- proof_bytes: string;
4520
- /** 256-byte ECDH public signals (hex). */
4521
- public_signals: string;
4522
- auditor: string;
4523
- }
4524
4169
  interface DecodedTransferArgs {
4525
4170
  dest: string;
4526
4171
  value: string;
@@ -4621,35 +4266,6 @@ interface MerkleRootUpdatedData {
4621
4266
  new_root: string;
4622
4267
  size: number;
4623
4268
  }
4624
- interface DisclosureRequestedData {
4625
- target: string;
4626
- auditor: string;
4627
- commitment: string;
4628
- required_fields: {
4629
- value: boolean;
4630
- asset_id: boolean;
4631
- owner: boolean;
4632
- };
4633
- auditor_bjj_pk_x: string;
4634
- auditor_bjj_pk_y: string;
4635
- }
4636
- interface DisclosureRejectedData {
4637
- target: string;
4638
- auditor: string;
4639
- commitment: string;
4640
- reason: string;
4641
- }
4642
- interface DisclosureSubmittedData {
4643
- who: string;
4644
- commitment: string;
4645
- proof_size: number;
4646
- auditor: string;
4647
- }
4648
- interface DisclosureVerifiedData {
4649
- who: string;
4650
- commitment: string;
4651
- verified: boolean;
4652
- }
4653
4269
  interface TransferEventData {
4654
4270
  from: string;
4655
4271
  to: string;
@@ -4720,4 +4336,4 @@ interface ExtrinsicFailedData {
4720
4336
  dispatch_info: DispatchInfo;
4721
4337
  }
4722
4338
 
4723
- export { type AccountListing, type AccountMappedData, type AccountMappedEvent, type AccountMappingCall, type AccountMappingEvent, AccountMappingModule, AccountMappingPrecompile, type AccountMetadata, type AccountUnmappedEvent, type ActiveVersionSetEvent, type AddChainLinkArgs, type AddChainLinkParams, type AddSupportedChainArgs, type AliasFullIdentity, type AliasInfo, type AliasListedForSaleEvent, type AliasOnSaleData, type AliasRegisteredData, type AliasRegisteredEvent, type AliasReleasedEvent, type AliasSaleCancelledEvent, type AliasSoldData, type AliasSoldEvent, type AliasTransferredData, type AliasTransferredEvent, type AssetRegisteredEvent, type AssetUnverifiedEvent, type AssetVerifiedEvent, type AuditPolicySetEvent, type Auditor, BABYJUB_SUBORDER, BN254_R, type BatchRegisterVerificationKeysArgs, type BatchVerificationKeysRegisteredEvent, type BlockInfo, type BuyAliasArgs, type Bytes32, type ChainInfo, type ChainLink, type ChainLinkAddedEvent, type ChainLinkRemovedEvent, CircuitId, CircuitId as CircuitIdType, type ClaimShieldedFeesParams, type ClientProviderConfig, type CommitmentsInsertedEvent, type CommitmentsInsertedEventData, type ConnectionStatus, CryptoPrecompiles, type DecodedAddChainLinkArgs, type DecodedBatchArgs, type DecodedDispatchAsPrivateLinkArgs, type DecodedEthereumTransactArgs, type DecodedEvmCallArgs, type DecodedPrecompile, type DecodedPrivateTransferArgs, type DecodedPutAliasForSaleArgs, type DecodedRegisterAliasArgs, type DecodedRejectDisclosureArgs, type DecodedRemarkArgs, type DecodedRequestDisclosureArgs, type DecodedRevealPrivateLinkArgs, type DecodedSetAccountMetadataArgs, type DecodedShieldArgs, type DecodedShieldBatchArgs, type DecodedShieldBatchOperation, type DecodedSubmitDisclosureArgs, type DecodedSudoArgs, type DecodedTransferAllArgs, type DecodedTransferArgs, type DecodedTransferKeepAliveArgs, type DecodedUnshieldArgs, type DecryptedMemo, type DiscloseArgs, type DiscloseParams, type DisclosedEvent, type DisclosureCondition, type DisclosureFieldMask, type DisclosurePublicSignals, type DisclosureRecordRevokedEvent, type DisclosureRejectedData, type DisclosureRejectedEvent, type DisclosureRequestExpiredEvent, type DisclosureRequestedData, type DisclosureRequestedEvent, type DisclosureSubmittedData, type DisclosureVerifiedData, type DispatchAsLinkedAccountArgs, type DispatchAsLinkedParams, type DispatchAsPrivateLinkArgs, type DispatchError, type DispatchInfo, type DynamicBuilder, ENCRYPTED_MEMO_SIZE, type EncryptedDisclosureSignals, EncryptedMemo, type EncryptedNoteRecord, type EndowedEventData, type EthereumExecutedData, type EventData, type EventPhase, type EventRecord, type EvmAddressInfo, type EvmBlock, EvmClient, type EvmExecutedData, type EvmExitReason, EvmExplorer, type EvmLog, type EvmSigner, type EvmTransaction, type EvmTxRequest, type EvmTxSummary, type ExtrinsicDecoder, type ExtrinsicFailedData, type ExtrinsicSuccessData, type FeeClaimProofInputs, type FormatOptions, type IndexedBlock, type IndexedEvmTx, type IndexedExtrinsic, IndexerClient, type IndexerClientConfig, type IndexerStats, KNOWN_PRECOMPILES, type KnownPrecompileInfo, type ListingInfo, type MerkleRoot, type MerkleRootUpdatedData, type MerkleRootUpdatedEvent, type MerkleTreeInfo, type MetadataUpdatedEvent, NoteBuilder, type NoteInput, type NoteStatusUpdate, type NullifierStatusResult, type NullifiersSpentEvent, type NullifiersSpentEventData, OrbinumClient, type OrbinumClientConfig, OrbinumClientProvider, PRECOMPILE_ADDR, type PaginatedResult, PrivacyKeyManager, type PrivacyMerkleProof, PrivacyModule, type PrivateChainLinkAddedEvent, type PrivateChainLinkRemovedEvent, type PrivateChainLinkRevealedEvent, type PrivateLink, type PrivateLinkDispatchExecutedEvent, type PrivateTransferArgs, type PrivateTransferInput, type PrivateTransferOutput, type PrivateTransferParams, type PrivateTransferProofInputs, type PrivateTransferTimestamp, type ProofVerificationFailedEvent, type ProofVerifiedEvent, type ProxyCallExecutedEvent, type PruneExpiredRequestArgs, type PruneExpiredRequestParams, type PutAliasOnSaleArgs, type PutOnSaleParams, type RawBlock, type RawBlockHeader, type RawTransferInput, type RawTransferOutput, type RegisterAliasArgs, type RegisterAssetArgs, type RegisterPrivateLinkArgs, type RegisterVerificationKeyArgs, type RejectDisclosureArgs, type RejectDisclosureParams, type RelayerInfo, RelayerStatusModule, type RemoveChainLinkArgs, type RemovePrivateLinkArgs, type RemoveSupportedChainArgs, type RemoveVerificationKeyArgs, type RequestDisclosureArgs, type RequestDisclosureParams, type ReservedEventData, type ResolvedAlias, type RevealPrivateLinkArgs, type RevokeDisclosureRecordArgs, type RpcV2MerkleProof, type RpcV2NullifierStatus, type RpcV2PoolAssetBalance, type RpcV2PoolStats, SLIP0044_NAMESPACE, type ScanCommitment, type SetAccountMetadataArgs, type SetActiveVersionArgs, type SetMetadataParams, type ShieldArgs, type ShieldBatchArgs, type ShieldBatchItem, type ShieldBatchParams, type ShieldOperation, type ShieldParams, type ShieldedAddressEvent, type ShieldedCommitment, type ShieldedEvent, type ShieldedEventData, type ShieldedPoolCall, type ShieldedPoolEvent, ShieldedPoolModule, ShieldedPoolPrecompile, SignatureScheme, type SpentNullifier, type StatusChangeEvent, type StatusListener, type StealthScanHint, SubstrateClient, type SupportedChain, type SupportedChainAddedEvent, type SupportedChainRemovedEvent, type SystemHealth, type TokenInfo, type TokenTransfer, type TransferAliasArgs, type TransferEventData, type TransferInputNote, type TransferOutputNote, type TxResult, type UnsafeTxOptions, type Unshield, type UnshieldArgs, type UnshieldParams, type UnshieldProofInputs, type UnshieldedEvent, type UnshieldedEventData, type UnverifyAssetArgs, VaultLockedError, type VerificationKeyRegisteredEvent, type VerificationKeyRemovedEvent, type VerifyAssetArgs, type VerifyProofArgs, type VkEntry, type ZkNote, type ZkVerifierCall, type ZkVerifierCircuitVersionInfo, type ZkVerifierEvent, type ZkVerifierHistoricalVersion, ZkVerifierModule, type ZkVerifierVersionStats, type ZkVerifierVkHash, accountIdHexToSs58, addressToAccountIdHex, applyNoteStatus, bigintTo32Be, bigintTo32Le, bigintTo32LeArr, buildDisclosurePublicSignals, buildDummyTransferInput, bytesToBigintLE, computeNullifier, computePathIndices, decodePrecompileCalldata, decryptDisclosureSignals, decryptJson, decryptNoteRecord, deriveBabyJubjubKeypair, deriveMasterKeyBytes, deriveOwnerPk, deriveSpendingKeyFromSignature, deriveSpendingKeyMessage, deriveStealthOwnerPk, deriveStealthSk, deriveVaultKey, deriveViewingPublicKey, deriveViewingSecretKey, encryptJson, encryptNote, ensureHexPrefix, evmAddressToAccountId, evmToImplicitSubstrate, evmToMappedAccountHex, evmToSubstrate, formatBalance, formatORB, fromBase64, fromHex, generateFeeClaimProof, generateTransferProof, generateUnshieldProof, getPrecompileLabel, hexToBigint, hexToNumber, implicitSubstrateToEvm, isEvmAddress, isImplicitEvmAccount, isSs58, isSubstrateAddress, isUnifiedAddress, leHexToBigint, mapExtrinsicArgs, mapZkEventData, normalizeEvmAddress, randomBlinding, recoverOwnerPkPoint, selectNotes, shortHash, substrateSs58ToAccountIdHex, substrateToEvm, toBase64, toHex, toTxResult, truncateMiddle, tryDecryptNote, tryDecryptNoteVerbose, vaultReplacer, vaultReviver };
4339
+ export { type AccountListing, type AccountMappedData, type AccountMappedEvent, type AccountMappingCall, type AccountMappingEvent, AccountMappingModule, AccountMappingPrecompile, type AccountMetadata, type AccountUnmappedEvent, type ActiveVersionSetEvent, type AddChainLinkArgs, type AddChainLinkParams, type AddSupportedChainArgs, type AliasFullIdentity, type AliasInfo, type AliasListedForSaleEvent, type AliasOnSaleData, type AliasRegisteredData, type AliasRegisteredEvent, type AliasReleasedEvent, type AliasSaleCancelledEvent, type AliasSoldData, type AliasSoldEvent, type AliasTransferredData, type AliasTransferredEvent, type AssetRegisteredEvent, type AssetUnverifiedEvent, type AssetVerifiedEvent, BABYJUB_SUBORDER, BN254_R, type BatchRegisterVerificationKeysArgs, type BatchVerificationKeysRegisteredEvent, type BlockInfo, type BuyAliasArgs, type Bytes32, type ChainInfo, type ChainLink, type ChainLinkAddedEvent, type ChainLinkRemovedEvent, CircuitId, CircuitId as CircuitIdType, type ClaimShieldedFeesParams, type ClientProviderConfig, type CommitmentsInsertedEvent, type CommitmentsInsertedEventData, type ConnectionStatus, CryptoPrecompiles, type DecodedAddChainLinkArgs, type DecodedBatchArgs, type DecodedDispatchAsPrivateLinkArgs, type DecodedEthereumTransactArgs, type DecodedEvmCallArgs, type DecodedPrecompile, type DecodedPrivateTransferArgs, type DecodedPutAliasForSaleArgs, type DecodedRegisterAliasArgs, type DecodedRemarkArgs, type DecodedRevealPrivateLinkArgs, type DecodedSetAccountMetadataArgs, type DecodedShieldArgs, type DecodedShieldBatchArgs, type DecodedShieldBatchOperation, type DecodedSudoArgs, type DecodedTransferAllArgs, type DecodedTransferArgs, type DecodedTransferKeepAliveArgs, type DecodedUnshieldArgs, type DecryptedMemo, type DispatchAsLinkedAccountArgs, type DispatchAsLinkedParams, type DispatchAsPrivateLinkArgs, type DispatchError, type DispatchInfo, type DynamicBuilder, ENCRYPTED_MEMO_SIZE, EncryptedMemo, type EncryptedNoteRecord, type EndowedEventData, type EthereumExecutedData, type EventData, type EventPhase, type EventRecord, type EvmAddressInfo, type EvmBlock, EvmClient, type EvmExecutedData, type EvmExitReason, EvmExplorer, type EvmLog, type EvmSigner, type EvmTransaction, type EvmTxRequest, type EvmTxSummary, type ExtrinsicDecoder, type ExtrinsicFailedData, type ExtrinsicSuccessData, type FeeClaimProofInputs, type FormatOptions, type IndexedBlock, type IndexedEvmTx, type IndexedExtrinsic, IndexerClient, type IndexerClientConfig, type IndexerStats, KNOWN_PRECOMPILES, type KnownPrecompileInfo, type ListingInfo, type MerkleRoot, type MerkleRootUpdatedData, type MerkleRootUpdatedEvent, type MerkleTreeInfo, type MetadataUpdatedEvent, NoteBuilder, type NoteDisclosure, type NoteInput, type NoteStatusUpdate, type NullifierStatusResult, type NullifiersSpentEvent, type NullifiersSpentEventData, OrbinumClient, type OrbinumClientConfig, OrbinumClientProvider, PRECOMPILE_ADDR, type PaginatedResult, PrivacyKeyManager, type PrivacyMerkleProof, PrivacyModule, type PrivateChainLinkAddedEvent, type PrivateChainLinkRemovedEvent, type PrivateChainLinkRevealedEvent, type PrivateLink, type PrivateLinkDispatchExecutedEvent, type PrivateTransferArgs, type PrivateTransferInput, type PrivateTransferOutput, type PrivateTransferParams, type PrivateTransferProofInputs, type PrivateTransferTimestamp, type ProofVerificationFailedEvent, type ProofVerifiedEvent, type ProxyCallExecutedEvent, type PutAliasOnSaleArgs, type PutOnSaleParams, type RawBlock, type RawBlockHeader, type RawTransferInput, type RawTransferOutput, type RegisterAliasArgs, type RegisterAssetArgs, type RegisterPrivateLinkArgs, type RegisterVerificationKeyArgs, type RegisteredAsset, type RelayFeeEvent, type RelayFeeSummaryEntry, type Relayer, type RelayerInfo, RelayerStatusModule, type RemoveChainLinkArgs, type RemovePrivateLinkArgs, type RemoveSupportedChainArgs, type RemoveVerificationKeyArgs, type ReservedEventData, type ResolvedAlias, type RevealPrivateLinkArgs, type RpcV2MerkleProof, type RpcV2NullifierStatus, type RpcV2PoolAssetBalance, type RpcV2PoolStats, SLIP0044_NAMESPACE, type ScanCommitment, type SetAccountMetadataArgs, type SetActiveVersionArgs, type SetMetadataParams, type ShieldArgs, type ShieldBatchArgs, type ShieldBatchItem, type ShieldBatchParams, type ShieldOperation, type ShieldParams, type ShieldedAddressEvent, type ShieldedCommitment, type ShieldedEvent, type ShieldedEventData, type ShieldedPoolCall, type ShieldedPoolEvent, ShieldedPoolModule, ShieldedPoolPrecompile, SignatureScheme, type SpentNullifier, type StatusChangeEvent, type StatusListener, type StealthScanHint, SubstrateClient, type SupportedChain, type SupportedChainAddedEvent, type SupportedChainRemovedEvent, type SystemHealth, type TokenInfo, type TokenTransfer, type TransferAliasArgs, type TransferEventData, type TransferInputNote, type TransferOutputNote, type TxResult, type UnsafeTxOptions, type Unshield, type UnshieldArgs, type UnshieldParams, type UnshieldProofInputs, type UnshieldedEvent, type UnshieldedEventData, type UnverifyAssetArgs, VaultLockedError, type VerificationKeyRegisteredEvent, type VerificationKeyRemovedEvent, type VerifyAssetArgs, type VerifyProofArgs, type VkEntry, type ZkNote, type ZkVerifierCall, type ZkVerifierCircuitVersionInfo, type ZkVerifierEvent, type ZkVerifierHistoricalVersion, ZkVerifierModule, type ZkVerifierVersionStats, type ZkVerifierVkHash, accountIdHexToSs58, addressToAccountIdHex, applyNoteStatus, bigintTo32Be, bigintTo32Le, bigintTo32LeArr, buildDummyTransferInput, bytesToBigintLE, computeNullifier, computePathIndices, createNoteDisclosureKey, decodeNoteDisclosureKey, decodePrecompileCalldata, decryptJson, decryptNoteRecord, deriveMasterKeyBytes, deriveOwnerPk, deriveSpendingKeyFromSignature, deriveSpendingKeyMessage, deriveStealthOwnerPk, deriveStealthSk, deriveVaultKey, deriveViewingPublicKey, deriveViewingSecretKey, encryptJson, encryptNote, ensureHexPrefix, evmAddressToAccountId, evmToImplicitSubstrate, evmToMappedAccountHex, evmToSubstrate, formatBalance, formatORB, fromBase64, fromHex, generateFeeClaimProof, generateTransferProof, generateUnshieldProof, getPrecompileLabel, hexToBigint, hexToNumber, implicitSubstrateToEvm, isEvmAddress, isImplicitEvmAccount, isSs58, isSubstrateAddress, isUnifiedAddress, leHexToBigint, mapExtrinsicArgs, mapZkEventData, normalizeEvmAddress, randomBlinding, recoverOwnerPkPoint, selectNotes, shortHash, substrateSs58ToAccountIdHex, substrateToEvm, toBase64, toHex, toTxResult, truncateMiddle, tryDecryptNote, tryDecryptNoteVerbose, vaultReplacer, vaultReviver };