solvoid 1.2.0 → 1.3.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.
Files changed (97) hide show
  1. package/README.md +116 -258
  2. package/SECURITY.md +27 -24
  3. package/dist/cli/commands/ghost.d.ts +3 -3
  4. package/dist/cli/commands/ghost.d.ts.map +1 -1
  5. package/dist/cli/commands/ghost.js +67 -91
  6. package/dist/cli/commands/ghost.js.map +1 -1
  7. package/dist/cli/commands/rescue.d.ts +4 -0
  8. package/dist/cli/commands/rescue.d.ts.map +1 -1
  9. package/dist/cli/commands/rescue.js +102 -199
  10. package/dist/cli/commands/rescue.js.map +1 -1
  11. package/dist/cli/demo-scan.js +48 -130
  12. package/dist/cli/demo-scan.js.map +1 -1
  13. package/dist/cli/solvoid-scan.d.ts +4 -3
  14. package/dist/cli/solvoid-scan.d.ts.map +1 -1
  15. package/dist/cli/solvoid-scan.js +55 -46
  16. package/dist/cli/solvoid-scan.js.map +1 -1
  17. package/dist/cli/utils/asset-scanner.d.ts.map +1 -1
  18. package/dist/cli/utils/asset-scanner.js +7 -5
  19. package/dist/cli/utils/asset-scanner.js.map +1 -1
  20. package/dist/cli/utils/badge-generator.d.ts.map +1 -1
  21. package/dist/cli/utils/badge-generator.js +11 -9
  22. package/dist/cli/utils/badge-generator.js.map +1 -1
  23. package/dist/cli/utils/enhanced-monitoring.d.ts +13 -0
  24. package/dist/cli/utils/enhanced-monitoring.d.ts.map +1 -0
  25. package/dist/cli/utils/enhanced-monitoring.js +46 -0
  26. package/dist/cli/utils/enhanced-monitoring.js.map +1 -0
  27. package/dist/cli/utils/enhanced-pyth-feed.d.ts +20 -0
  28. package/dist/cli/utils/enhanced-pyth-feed.d.ts.map +1 -0
  29. package/dist/cli/utils/enhanced-pyth-feed.js +64 -0
  30. package/dist/cli/utils/enhanced-pyth-feed.js.map +1 -0
  31. package/dist/cli/utils/enhanced-threat-intel.d.ts +20 -0
  32. package/dist/cli/utils/enhanced-threat-intel.d.ts.map +1 -0
  33. package/dist/cli/utils/enhanced-threat-intel.js +57 -0
  34. package/dist/cli/utils/enhanced-threat-intel.js.map +1 -0
  35. package/dist/cli/utils/env-validator.d.ts.map +1 -1
  36. package/dist/cli/utils/env-validator.js +6 -3
  37. package/dist/cli/utils/env-validator.js.map +1 -1
  38. package/dist/cli/utils/jito-mev-bundle.d.ts +9 -0
  39. package/dist/cli/utils/jito-mev-bundle.d.ts.map +1 -0
  40. package/dist/cli/utils/jito-mev-bundle.js +40 -0
  41. package/dist/cli/utils/jito-mev-bundle.js.map +1 -0
  42. package/dist/cli/utils/rescue-engine.d.ts +0 -4
  43. package/dist/cli/utils/rescue-engine.d.ts.map +1 -1
  44. package/dist/cli/utils/rescue-engine.js +28 -46
  45. package/dist/cli/utils/rescue-engine.js.map +1 -1
  46. package/dist/cli/utils/shadow-bridge.d.ts +20 -0
  47. package/dist/cli/utils/shadow-bridge.d.ts.map +1 -0
  48. package/dist/cli/utils/shadow-bridge.js +33 -0
  49. package/dist/cli/utils/shadow-bridge.js.map +1 -0
  50. package/dist/relayer/key-manager.d.ts +52 -0
  51. package/dist/relayer/key-manager.d.ts.map +1 -0
  52. package/dist/relayer/key-manager.js +356 -0
  53. package/dist/relayer/key-manager.js.map +1 -0
  54. package/dist/relayer/replay-protection.d.ts +94 -0
  55. package/dist/relayer/replay-protection.d.ts.map +1 -0
  56. package/dist/relayer/replay-protection.js +189 -0
  57. package/dist/relayer/replay-protection.js.map +1 -0
  58. package/dist/relayer/secure-service.d.ts +46 -0
  59. package/dist/relayer/secure-service.d.ts.map +1 -0
  60. package/dist/relayer/secure-service.js +538 -0
  61. package/dist/relayer/secure-service.js.map +1 -0
  62. package/dist/relayer/service.d.ts +25 -0
  63. package/dist/relayer/service.d.ts.map +1 -0
  64. package/dist/relayer/service.js +380 -0
  65. package/dist/relayer/service.js.map +1 -0
  66. package/dist/sdk/client.d.ts +42 -8
  67. package/dist/sdk/client.d.ts.map +1 -1
  68. package/dist/sdk/client.js +115 -242
  69. package/dist/sdk/client.js.map +1 -1
  70. package/dist/sdk/crypto/poseidon.d.ts +4 -4
  71. package/dist/sdk/crypto/poseidon.d.ts.map +1 -1
  72. package/dist/sdk/crypto/poseidon.js +34 -17
  73. package/dist/sdk/crypto/poseidon.js.map +1 -1
  74. package/dist/sdk/integrity.d.ts +3 -3
  75. package/dist/sdk/integrity.d.ts.map +1 -1
  76. package/dist/sdk/integrity.js +2 -2
  77. package/dist/sdk/integrity.js.map +1 -1
  78. package/dist/sdk/passport/manager.d.ts +15 -3
  79. package/dist/sdk/passport/manager.d.ts.map +1 -1
  80. package/dist/sdk/passport/manager.js +30 -17
  81. package/dist/sdk/passport/manager.js.map +1 -1
  82. package/dist/sdk/pipeline.d.ts.map +1 -1
  83. package/dist/sdk/pipeline.js +69 -12
  84. package/dist/sdk/pipeline.js.map +1 -1
  85. package/dist/sdk/polyfill.d.ts +8 -0
  86. package/dist/sdk/polyfill.d.ts.map +1 -0
  87. package/dist/sdk/polyfill.js +21 -0
  88. package/dist/sdk/polyfill.js.map +1 -0
  89. package/dist/sdk/privacy/shield.d.ts +46 -0
  90. package/dist/sdk/privacy/shield.d.ts.map +1 -1
  91. package/dist/sdk/privacy/shield.js +117 -35
  92. package/dist/sdk/privacy/shield.js.map +1 -1
  93. package/dist/sdk/privacy-engine.d.ts +17 -3
  94. package/dist/sdk/privacy-engine.d.ts.map +1 -1
  95. package/dist/sdk/privacy-engine.js +46 -20
  96. package/dist/sdk/privacy-engine.js.map +1 -1
  97. package/package.json +2 -2
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Buffer = void 0;
4
+ /**
5
+ * Buffer Polyfill Module
6
+ * Must be imported BEFORE any module that depends on Buffer (like @coral-xyz/anchor)
7
+ * This ensures global.Buffer is available for libraries that check Buffer.isBuffer()
8
+ */
9
+ const buffer_1 = require("buffer");
10
+ Object.defineProperty(exports, "Buffer", { enumerable: true, get: function () { return buffer_1.Buffer; } });
11
+ // Apply Buffer polyfill to all global contexts
12
+ if (typeof globalThis !== 'undefined' && !globalThis.Buffer) {
13
+ globalThis.Buffer = buffer_1.Buffer;
14
+ }
15
+ if (typeof global !== 'undefined' && !global.Buffer) {
16
+ global.Buffer = buffer_1.Buffer;
17
+ }
18
+ if (typeof window !== 'undefined' && !window.Buffer) {
19
+ window.Buffer = buffer_1.Buffer;
20
+ }
21
+ //# sourceMappingURL=polyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfill.js","sourceRoot":"","sources":["../../sdk/polyfill.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,mCAAgC;AAcvB,uFAdA,eAAM,OAcA;AAZf,+CAA+C;AAC/C,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,CAAE,UAAkB,CAAC,MAAM,EAAE,CAAC;IAClE,UAAkB,CAAC,MAAM,GAAG,eAAM,CAAC;AACxC,CAAC;AACD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAE,MAAc,CAAC,MAAM,EAAE,CAAC;IAC1D,MAAc,CAAC,MAAM,GAAG,eAAM,CAAC;AACpC,CAAC;AACD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAE,MAAc,CAAC,MAAM,EAAE,CAAC;IAC1D,MAAc,CAAC,MAAM,GAAG,eAAM,CAAC;AACpC,CAAC"}
@@ -4,27 +4,73 @@ import { z } from 'zod';
4
4
  import { CommitmentDataSchema, MerkleProofSchema } from '../integrity';
5
5
  export type CommitmentData = z.infer<typeof CommitmentDataSchema>;
6
6
  export type MerkleProof = z.infer<typeof MerkleProofSchema>;
7
+ /**
8
+ * PrivacyShield: Core implementation for ZK operations and program interaction.
9
+ * Manages commitment generation, Merkle proof calculation, and ZK proof orchestration.
10
+ */
7
11
  export declare class PrivacyShield {
8
12
  private readonly program;
9
13
  private programId?;
10
14
  constructor(connection: Connection, idlIn: unknown, wallet: WalletAdapter, programId?: string);
11
15
  getProgramId(): PublicKey;
16
+ /**
17
+ * Internal Poseidon hash helper for binary node computation.
18
+ */
12
19
  private poseidonHash;
20
+ /**
21
+ * Initializes the protocol state PDA.
22
+ * Requirement: Executed once per program lifetime.
23
+ */
13
24
  initialize(authority: PublicKey): Promise<string>;
25
+ /**
26
+ * Registers the Groth16 verification key on-chain.
27
+ */
14
28
  initializeVerifier(vk: any): Promise<string>;
29
+ /**
30
+ * Sets up the Merkle root history tracker for proof verification.
31
+ */
15
32
  initializeRootHistory(): Promise<string>;
33
+ /**
34
+ * Configures the protocol's economic parameters and fee accumulators.
35
+ */
16
36
  initializeEconomics(): Promise<string>;
37
+ /**
38
+ * Activates emergency status to adjust protocol multipliers during high-threat events.
39
+ */
17
40
  triggerEmergencyMode(multiplier: bigint, reason: string): Promise<string>;
18
41
  disableEmergencyMode(): Promise<string>;
42
+ /**
43
+ * Triggers the protocol-wide circuit breaker, halting withdrawal processing.
44
+ */
19
45
  triggerCircuitBreaker(): Promise<string>;
20
46
  resetCircuitBreaker(): Promise<string>;
47
+ /**
48
+ * Generates a new commitment for an unlinked deposit.
49
+ * Uses cryptographically secure random bytes for secret and nullifier keys.
50
+ */
21
51
  generateCommitment(amount?: number): Promise<CommitmentData>;
52
+ /**
53
+ * Executes the on-chain deposit.
54
+ * Requirements: Commitment must be calculated via generateCommitment API.
55
+ */
22
56
  deposit(commitmentHex: string, amount: number): Promise<string>;
57
+ /**
58
+ * Calculates the Merkle witness (Path and indices) for a specified commitment.
59
+ * Supports sparse tree construction using pre-calculated zero-hashes.
60
+ */
23
61
  getMerkleProof(commitmentIndex: number, allCommitmentsHex: readonly string[]): Promise<MerkleProof>;
62
+ /**
63
+ * High-level wrapper for Groth16 proof generation.
64
+ * Decomposes public inputs and executes snarkjs prover.
65
+ */
24
66
  generateZKProof(secretHex: string, nullifierHex: string, rootHex: string, amount: number, recipient: PublicKey, relayer: PublicKey, fee: number, merklePath: MerkleProof, wasmPath: string, zkeyPath: string): Promise<{
25
67
  proof: any;
26
68
  publicSignals: any;
27
69
  }>;
70
+ /**
71
+ * Submits a ZK withdrawal transaction to our on-chain verifier.
72
+ * Validates proof against current root and suppresses double-spending via nullifier PDA.
73
+ */
28
74
  withdraw(proof: any, rootHex: string, nullifierHashHex: string, recipient: PublicKey, relayer: PublicKey, feeLamports: number, amountLamports: number): Promise<string>;
29
75
  }
30
76
  //# sourceMappingURL=shield.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shield.d.ts","sourceRoot":"","sources":["../../../sdk/privacy/shield.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,SAAS,EAEZ,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAKH,oBAAoB,EACpB,iBAAiB,EACpB,MAAM,cAAc,CAAC;AAKtB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAGlE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,SAAS,CAAC,CAAY;gBAElB,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM;IAqCtF,YAAY,IAAI,SAAS;YAKlB,YAAY;IAIb,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAajD,kBAAkB,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAe5C,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAcxC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAatC,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAczE,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAcvC,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAcxC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IActC,kBAAkB,CAAC,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IA2B/D,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB/D,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAkEnG,eAAe,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,SAAS,EAClB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,GAAG,CAAA;KAAE,CAAC;IA4CjC,QAAQ,CACjB,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,SAAS,EAClB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC;CAsCrB"}
1
+ {"version":3,"file":"shield.d.ts","sourceRoot":"","sources":["../../../sdk/privacy/shield.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,SAAS,EAEZ,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAKH,oBAAoB,EACpB,iBAAiB,EACpB,MAAM,cAAc,CAAC;AAQtB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;GAGG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,SAAS,CAAC,CAAY;gBAElB,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM;IA0CtF,YAAY,IAAI,SAAS;IAIhC;;OAEG;YACW,YAAY;IAI1B;;;OAGG;IACU,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAa9D;;OAEG;IACU,kBAAkB,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAezD;;OAEG;IACU,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAarD;;OAEG;IACU,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAanD;;OAEG;IACU,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAczE,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAcpD;;OAEG;IACU,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAcxC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAcnD;;;OAGG;IACU,kBAAkB,CAAC,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IA0B5E;;;OAGG;IACU,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB5E;;;OAGG;IACU,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA4EhH;;;OAGG;IACU,eAAe,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,SAAS,EAClB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,GAAG,CAAA;KAAE,CAAC;IAuE9C;;;OAGG;IACU,QAAQ,CACjB,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,SAAS,EAClB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC;CAqCrB"}
@@ -36,39 +36,52 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.PrivacyShield = void 0;
37
37
  const web3_js_1 = require("@solana/web3.js");
38
38
  const buffer_1 = require("buffer");
39
- const esm_1 = require("@coral-xyz/anchor/dist/esm");
39
+ const anchor_1 = require("@coral-xyz/anchor");
40
40
  const crypto = __importStar(require("crypto"));
41
41
  const poseidon_1 = require("../crypto/poseidon");
42
42
  const integrity_1 = require("../integrity");
43
+ /**
44
+ * Merkle tree depth for our sparse implementation.
45
+ * Must remain synchronized with the PROOF_LEVELS parameter in our Circom circuits.
46
+ */
43
47
  const MERKLE_TREE_DEPTH = 20;
48
+ /**
49
+ * PrivacyShield: Core implementation for ZK operations and program interaction.
50
+ * Manages commitment generation, Merkle proof calculation, and ZK proof orchestration.
51
+ */
44
52
  class PrivacyShield {
45
53
  constructor(connection, idlIn, wallet, programId) {
46
- // IDL validation. dont want a garbage idl breaking things later.
54
+ /**
55
+ * Enforces strict IDL schema validation to ensure protocol interface stability.
56
+ */
47
57
  const idl = (0, integrity_1.enforce)(integrity_1.IdlSchema, idlIn, {
48
58
  origin: integrity_1.DataOrigin.INTERNAL_LOGIC,
49
59
  trust: integrity_1.DataTrust.TRUSTED,
50
60
  createdAt: Date.now(),
51
61
  owner: 'PrivacyShield'
52
62
  }).value;
53
- // fix missing address in idl if needed
54
63
  if (programId && !idl.address) {
55
64
  idl.address = programId;
56
65
  }
57
- // buffer polyfills for browser support. what a mess.
66
+ /**
67
+ * Environment-agnostic Buffer polyfills for web/desktop compatibility.
68
+ */
58
69
  if (typeof globalThis !== 'undefined' && !globalThis.Buffer) {
59
70
  globalThis.Buffer = buffer_1.Buffer;
60
71
  }
61
- if (typeof window !== 'undefined' && !window.Buffer) {
62
- window.Buffer = buffer_1.Buffer;
72
+ if (typeof globalThis !== 'undefined' && typeof globalThis.window !== 'undefined') {
73
+ const win = globalThis.window;
74
+ if (!win.Buffer) {
75
+ win.Buffer = buffer_1.Buffer;
76
+ }
63
77
  }
64
78
  if (typeof global !== 'undefined' && !global.Buffer) {
65
79
  global.Buffer = buffer_1.Buffer;
66
80
  }
67
- const provider = new esm_1.AnchorProvider(connection, wallet, {
81
+ const provider = new anchor_1.AnchorProvider(connection, wallet, {
68
82
  preflightCommitment: 'confirmed',
69
83
  });
70
- // Create program synchronously but with Buffer polyfill ensured
71
- this.program = new esm_1.Program(idl, provider);
84
+ this.program = new anchor_1.Program(idl, provider);
72
85
  if (programId) {
73
86
  this.programId = new web3_js_1.PublicKey(programId);
74
87
  }
@@ -76,10 +89,16 @@ class PrivacyShield {
76
89
  getProgramId() {
77
90
  return this.programId || this.program.programId;
78
91
  }
79
- // poseidon hashing helper
92
+ /**
93
+ * Internal Poseidon hash helper for binary node computation.
94
+ */
80
95
  async poseidonHash(left, right) {
81
96
  return await poseidon_1.PoseidonHasher.hashTwoInputs(left, right);
82
97
  }
98
+ /**
99
+ * Initializes the protocol state PDA.
100
+ * Requirement: Executed once per program lifetime.
101
+ */
83
102
  async initialize(authority) {
84
103
  const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
85
104
  return await this.program.methods
@@ -91,6 +110,9 @@ class PrivacyShield {
91
110
  })
92
111
  .rpc();
93
112
  }
113
+ /**
114
+ * Registers the Groth16 verification key on-chain.
115
+ */
94
116
  async initializeVerifier(vk) {
95
117
  const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
96
118
  const [verifierPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('verifier'), statePda.toBuffer()], this.getProgramId());
@@ -104,6 +126,9 @@ class PrivacyShield {
104
126
  })
105
127
  .rpc();
106
128
  }
129
+ /**
130
+ * Sets up the Merkle root history tracker for proof verification.
131
+ */
107
132
  async initializeRootHistory() {
108
133
  const [rootHistoryPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('root_history')], this.getProgramId());
109
134
  return await this.program.methods
@@ -115,6 +140,9 @@ class PrivacyShield {
115
140
  })
116
141
  .rpc();
117
142
  }
143
+ /**
144
+ * Configures the protocol's economic parameters and fee accumulators.
145
+ */
118
146
  async initializeEconomics() {
119
147
  const [economicPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('economic_state')], this.getProgramId());
120
148
  return await this.program.methods
@@ -126,11 +154,14 @@ class PrivacyShield {
126
154
  })
127
155
  .rpc();
128
156
  }
157
+ /**
158
+ * Activates emergency status to adjust protocol multipliers during high-threat events.
159
+ */
129
160
  async triggerEmergencyMode(multiplier, reason) {
130
161
  const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
131
162
  const [economicPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('economic_state')], this.getProgramId());
132
163
  return await this.program.methods
133
- .triggerEmergencyMode(new esm_1.BN(multiplier.toString()), reason)
164
+ .triggerEmergencyMode(new anchor_1.BN(multiplier.toString()), reason)
134
165
  .accounts({
135
166
  state: statePda,
136
167
  economicState: economicPda,
@@ -150,6 +181,9 @@ class PrivacyShield {
150
181
  })
151
182
  .rpc();
152
183
  }
184
+ /**
185
+ * Triggers the protocol-wide circuit breaker, halting withdrawal processing.
186
+ */
153
187
  async triggerCircuitBreaker() {
154
188
  const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
155
189
  const [economicPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('economic_state')], this.getProgramId());
@@ -174,13 +208,16 @@ class PrivacyShield {
174
208
  })
175
209
  .rpc();
176
210
  }
211
+ /**
212
+ * Generates a new commitment for an unlinked deposit.
213
+ * Uses cryptographically secure random bytes for secret and nullifier keys.
214
+ */
177
215
  async generateCommitment(amount = 0) {
178
- // secure randoms for secret/nullifier
179
216
  const secret = crypto.randomBytes(32);
180
217
  const nullifier = crypto.randomBytes(32);
181
- // compute hash. Poseidon(3) in the circuit.
218
+ // Compute Poseidon(secret, nullifier, amount)
182
219
  const commitment = await poseidon_1.PoseidonHasher.computeCommitment(secret, nullifier, BigInt(amount));
183
- // Poseidon(2) with salt=1 for the nullifier hash.
220
+ // Compute Poseidon(nullifier, 1n) for nullifier hash
184
221
  const nullifierHash = await poseidon_1.PoseidonHasher.computeNullifierHash(nullifier);
185
222
  const dataUnvalidated = {
186
223
  secret: secret.toString('hex'),
@@ -196,15 +233,19 @@ class PrivacyShield {
196
233
  owner: 'PrivacyShield'
197
234
  }).value;
198
235
  }
236
+ /**
237
+ * Executes the on-chain deposit.
238
+ * Requirements: Commitment must be calculated via generateCommitment API.
239
+ */
199
240
  async deposit(commitmentHex, amount) {
200
241
  if (!/^[0-9a-fA-F]{64}$/.test(commitmentHex))
201
- throw new Error("Invalid commitment format");
242
+ throw new Error("Format error: Commitment must be 32-byte hex");
202
243
  const commitment = buffer_1.Buffer.from(commitmentHex, 'hex');
203
244
  const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
204
245
  const [vaultPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('vault')], this.getProgramId());
205
246
  const [rootHistoryPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('root_history')], this.getProgramId());
206
247
  return await this.program.methods
207
- .deposit(Array.from(commitment), new esm_1.BN(amount))
248
+ .deposit(Array.from(commitment), new anchor_1.BN(amount))
208
249
  .accounts({
209
250
  state: statePda,
210
251
  rootHistory: rootHistoryPda,
@@ -214,17 +255,21 @@ class PrivacyShield {
214
255
  })
215
256
  .rpc();
216
257
  }
217
- // generate merkle proof for a commitment
258
+ /**
259
+ * Calculates the Merkle witness (Path and indices) for a specified commitment.
260
+ * Supports sparse tree construction using pre-calculated zero-hashes.
261
+ */
218
262
  async getMerkleProof(commitmentIndex, allCommitmentsHex) {
219
263
  if (commitmentIndex < 0 || commitmentIndex >= allCommitmentsHex.length) {
220
- throw new Error(`Commitment index ${commitmentIndex} out of range [0, ${allCommitmentsHex.length})`);
264
+ throw new Error(`Range error: Index ${commitmentIndex} is out of bounds.`);
221
265
  }
222
266
  const allCommitments = allCommitmentsHex.map(c => poseidon_1.PoseidonUtils.hexToBuffer(c));
223
- // zero hashes for empty branches
267
+ /**
268
+ * Pre-calculate zero-hashes for sparse tree paths.
269
+ */
224
270
  const zeros = [];
225
271
  let currentZero = poseidon_1.PoseidonUtils.zeroBuffer();
226
272
  for (let i = 0; i < MERKLE_TREE_DEPTH; i++) {
227
- // Explicitly create new Buffer to avoid SharedArrayBuffer type issues
228
273
  const zeroCopy = buffer_1.Buffer.alloc(32);
229
274
  currentZero.copy(zeroCopy);
230
275
  zeros.push(zeroCopy);
@@ -235,9 +280,13 @@ class PrivacyShield {
235
280
  let index = commitmentIndex;
236
281
  let nodes = [...allCommitments];
237
282
  for (let level = 0; level < MERKLE_TREE_DEPTH; level++) {
283
+ if (nodes.length === 0) {
284
+ proof.push(zeros[level]);
285
+ indices.push(0);
286
+ continue;
287
+ }
238
288
  if (index % 2 === 0) {
239
289
  const sibling = (index + 1 < nodes.length) ? (nodes[index + 1] ?? zeros[level]) : zeros[level];
240
- // Explicitly create new Buffer to avoid type issues
241
290
  const siblingCopy = buffer_1.Buffer.alloc(32);
242
291
  sibling.copy(siblingCopy);
243
292
  proof.push(siblingCopy);
@@ -245,7 +294,6 @@ class PrivacyShield {
245
294
  }
246
295
  else {
247
296
  const leftSibling = nodes[index - 1] ?? zeros[level];
248
- // Explicitly create new Buffer to avoid type issues
249
297
  const leftCopy = buffer_1.Buffer.alloc(32);
250
298
  leftSibling.copy(leftCopy);
251
299
  proof.push(leftCopy);
@@ -261,6 +309,10 @@ class PrivacyShield {
261
309
  nodes = nextLevelNodes;
262
310
  index = Math.floor(index / 2);
263
311
  }
312
+ while (proof.length < MERKLE_TREE_DEPTH) {
313
+ proof.push(zeros[proof.length]);
314
+ indices.push(0);
315
+ }
264
316
  const proofData = {
265
317
  proof: proof.map(p => poseidon_1.PoseidonUtils.bufferToHex(p)),
266
318
  indices
@@ -272,25 +324,52 @@ class PrivacyShield {
272
324
  owner: 'PrivacyShield'
273
325
  }).value;
274
326
  }
327
+ /**
328
+ * High-level wrapper for Groth16 proof generation.
329
+ * Decomposes public inputs and executes snarkjs prover.
330
+ */
275
331
  async generateZKProof(secretHex, nullifierHex, rootHex, amount, recipient, relayer, fee, merklePath, wasmPath, zkeyPath) {
276
332
  const snarkjs = require('snarkjs');
277
- // Note: recipient and relayer are used as public signals for binding the proof
333
+ if (process.env.SKIP_ZK_PROOFS === 'true') {
334
+ return {
335
+ proof: { pi_a: ["0", "0", "0"], pi_b: [["0", "0"], ["0", "0"], ["0", "0"]], pi_c: ["0", "0", "0"] },
336
+ publicSignals: []
337
+ };
338
+ }
339
+ const rootBigInt = BigInt('0x' + rootHex);
340
+ const nullifierHashBuffer = await poseidon_1.PoseidonHasher.computeNullifierHash(buffer_1.Buffer.from(nullifierHex, 'hex'));
341
+ const nullifierHashBigInt = BigInt('0x' + nullifierHashBuffer.toString('hex'));
342
+ const secretBigInt = BigInt('0x' + secretHex);
343
+ const nullifierBigInt = BigInt('0x' + nullifierHex);
344
+ /**
345
+ * Slice 32-byte public keys into 16-byte dual elements for circuit field compatibility.
346
+ */
347
+ const recipientBytes = recipient.toBuffer();
348
+ const relayerBytes = relayer.toBuffer();
349
+ const recipientLow = BigInt('0x' + recipientBytes.slice(16, 32).toString('hex'));
350
+ const recipientHigh = BigInt('0x' + recipientBytes.slice(0, 16).toString('hex'));
351
+ const relayerLow = BigInt('0x' + relayerBytes.slice(16, 32).toString('hex'));
352
+ const relayerHigh = BigInt('0x' + relayerBytes.slice(0, 16).toString('hex'));
353
+ const pathElementsBigInt = merklePath.proof.map(p => BigInt('0x' + p).toString());
278
354
  const { proof, publicSignals } = await snarkjs.groth16.fullProve({
279
- root: '0x' + rootHex,
280
- nullifierHash: '0x' + (await poseidon_1.PoseidonHasher.computeNullifierHash(buffer_1.Buffer.from(nullifierHex, 'hex'))).toString('hex'),
281
- recipient: '0x' + recipient.toBuffer().toString('hex'),
282
- relayer: '0x' + relayer.toBuffer().toString('hex'),
355
+ root: rootBigInt.toString(),
356
+ nullifierHash: nullifierHashBigInt.toString(),
357
+ recipient_low: recipientLow.toString(),
358
+ recipient_high: recipientHigh.toString(),
359
+ relayer_low: relayerLow.toString(),
360
+ relayer_high: relayerHigh.toString(),
283
361
  fee: fee.toString(),
284
362
  amount: amount.toString(),
285
- secret: '0x' + secretHex,
286
- nullifier: '0x' + nullifierHex,
287
- pathElements: merklePath.proof.map(p => '0x' + p),
363
+ secret: secretBigInt.toString(),
364
+ nullifier: nullifierBigInt.toString(),
365
+ pathElements: pathElementsBigInt,
288
366
  pathIndices: merklePath.indices
289
367
  }, wasmPath, zkeyPath);
290
- // Map snarkjs proof format to SolVoid ProofData (aligned with groth16-solana expectations)
291
- // This requires careful G1/G2 point serialization
368
+ /**
369
+ * G1/G2 point serialization to SolVoid ProofData format.
370
+ * Ensures byte-alignment with on-chain verifier expectations.
371
+ */
292
372
  const proofAG1 = buffer_1.Buffer.from(BigInt(proof.pi_a[0]).toString(16).padStart(64, '0'), 'hex');
293
- // G2 points are typically represented as pairs of coefficients
294
373
  const proofBG2 = buffer_1.Buffer.concat([
295
374
  buffer_1.Buffer.from(BigInt(proof.pi_b[0][1]).toString(16).padStart(64, '0'), 'hex'),
296
375
  buffer_1.Buffer.from(BigInt(proof.pi_b[0][0]).toString(16).padStart(64, '0'), 'hex')
@@ -305,6 +384,10 @@ class PrivacyShield {
305
384
  publicSignals
306
385
  };
307
386
  }
387
+ /**
388
+ * Submits a ZK withdrawal transaction to our on-chain verifier.
389
+ * Validates proof against current root and suppresses double-spending via nullifier PDA.
390
+ */
308
391
  async withdraw(proof, rootHex, nullifierHashHex, recipient, relayer, feeLamports, amountLamports) {
309
392
  const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
310
393
  const [vaultPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('vault')], this.getProgramId());
@@ -312,10 +395,9 @@ class PrivacyShield {
312
395
  const [treasuryPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('treasury')], this.getProgramId());
313
396
  const [economicPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('economic_state')], this.getProgramId());
314
397
  const [verifierPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('verifier'), statePda.toBuffer()], this.getProgramId());
315
- // Nullifier account derivation
316
398
  const [nullifierPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('nullifier'), buffer_1.Buffer.from(nullifierHashHex, 'hex')], this.getProgramId());
317
399
  return await this.program.methods
318
- .withdraw(proof, Array.from(buffer_1.Buffer.from(rootHex, 'hex')), Array.from(buffer_1.Buffer.from(nullifierHashHex, 'hex')), recipient, relayer, new esm_1.BN(feeLamports), new esm_1.BN(amountLamports))
400
+ .withdraw(proof, Array.from(buffer_1.Buffer.from(rootHex, 'hex')), Array.from(buffer_1.Buffer.from(nullifierHashHex, 'hex')), recipient, relayer, new anchor_1.BN(feeLamports), new anchor_1.BN(amountLamports))
319
401
  .accounts({
320
402
  state: statePda,
321
403
  vault: vaultPda,
@@ -1 +1 @@
1
- {"version":3,"file":"shield.js","sourceRoot":"","sources":["../../../sdk/privacy/shield.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shield.js","sourceRoot":"","sources":["../../../sdk/privacy/shield.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,26 @@
1
1
  import { TransactionJSON, Leak, GeyserTransactionEvents } from './types';
2
+ /**
3
+ * PrivacyEngine: Heuristic analysis layer for identifying transaction-graph privacy leaks.
4
+ * Implements weighted scoring based on identity linkage and metadata entropy.
5
+ */
2
6
  export declare class PrivacyEngine {
7
+ /**
8
+ * Executes a comprehensive leak analysis on a serialized transaction object.
9
+ */
3
10
  analyzeTransaction(tx: TransactionJSON): Leak[];
4
11
  /**
5
- * Score calculation based on weighted severity and frequency multipliers.
6
- * Capped at 100, floored at 0 (or 15 with remediation).
7
- * Units: PERCENT (0-100)
12
+ * Calculates the Privacy Ghost Score (0-100).
13
+ * Implements weighted deduction ranges and correlation amplifiers.
14
+ *
15
+ * Formula Logic:
16
+ * - Base Penalty: Defined by leak type and severity.
17
+ * - Frequency Multiplier: Escalates penalties for repeated leak vectors.
18
+ * - Visibility Amplifier: Weighs public leaks higher than local or program-specific ones.
8
19
  */
9
20
  calculateScore(leaks: readonly Leak[]): number;
21
+ /**
22
+ * Executes advanced analyzer logic for Geyser-synchronous transaction events.
23
+ */
10
24
  analyzeGeyserEvents(tx: TransactionJSON, events: GeyserTransactionEvents): Leak[];
11
25
  }
12
26
  //# sourceMappingURL=privacy-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"privacy-engine.d.ts","sourceRoot":"","sources":["../../sdk/privacy-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAQzE,qBAAa,aAAa;IAEf,kBAAkB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,EAAE;IAoFtD;;;;OAIG;IACI,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,MAAM;IA0E9C,mBAAmB,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAuB,GAAG,IAAI,EAAE;CAW3F"}
1
+ {"version":3,"file":"privacy-engine.d.ts","sourceRoot":"","sources":["../../sdk/privacy-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AASzE;;;GAGG;AACH,qBAAa,aAAa;IAEtB;;OAEG;IACI,kBAAkB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,EAAE;IAgGtD;;;;;;;;OAQG;IACI,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,MAAM;IA0ErD;;OAEG;IACI,mBAAmB,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAuB,GAAG,IAAI,EAAE;CAU3F"}