solvoid 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/dist/client.d.ts +73 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +281 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/crypto/poseidon.d.ts +124 -0
  7. package/dist/crypto/poseidon.d.ts.map +1 -0
  8. package/dist/crypto/poseidon.js +293 -0
  9. package/dist/crypto/poseidon.js.map +1 -0
  10. package/dist/events/bus.d.ts +44 -0
  11. package/dist/events/bus.d.ts.map +1 -0
  12. package/dist/events/bus.js +83 -0
  13. package/dist/events/bus.js.map +1 -0
  14. package/dist/{sdk/index.d.ts → index.d.ts} +2 -3
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/{sdk/index.js → index.js} +21 -11
  17. package/dist/index.js.map +1 -0
  18. package/dist/integrity.d.ts +371 -0
  19. package/dist/integrity.d.ts.map +1 -0
  20. package/dist/integrity.js +260 -0
  21. package/dist/integrity.js.map +1 -0
  22. package/dist/network/shadow-rpc.d.ts +36 -0
  23. package/dist/network/shadow-rpc.d.ts.map +1 -0
  24. package/dist/network/shadow-rpc.js +163 -0
  25. package/dist/network/shadow-rpc.js.map +1 -0
  26. package/dist/{sdk/passport → passport}/manager.d.ts +9 -18
  27. package/dist/passport/manager.d.ts.map +1 -0
  28. package/dist/passport/manager.js +148 -0
  29. package/dist/passport/manager.js.map +1 -0
  30. package/dist/pipeline.d.ts +25 -0
  31. package/dist/pipeline.d.ts.map +1 -0
  32. package/dist/pipeline.js +127 -0
  33. package/dist/pipeline.js.map +1 -0
  34. package/dist/privacy/relayer.d.ts.map +1 -0
  35. package/dist/privacy/relayer.js.map +1 -0
  36. package/dist/privacy/shield.d.ts +27 -0
  37. package/dist/privacy/shield.d.ts.map +1 -0
  38. package/dist/privacy/shield.js +289 -0
  39. package/dist/privacy/shield.js.map +1 -0
  40. package/dist/{sdk/privacy-engine.d.ts → privacy-engine.d.ts} +2 -1
  41. package/dist/privacy-engine.d.ts.map +1 -0
  42. package/dist/{sdk/privacy-engine.js → privacy-engine.js} +24 -15
  43. package/dist/privacy-engine.js.map +1 -0
  44. package/dist/registry/idl-fetcher.d.ts +10 -0
  45. package/dist/registry/idl-fetcher.d.ts.map +1 -0
  46. package/dist/{sdk/registry → registry}/idl-fetcher.js +19 -16
  47. package/dist/registry/idl-fetcher.js.map +1 -0
  48. package/dist/registry/programs.d.ts.map +1 -0
  49. package/dist/registry/programs.js.map +1 -0
  50. package/dist/rescue/analyzer.d.ts +20 -0
  51. package/dist/rescue/analyzer.d.ts.map +1 -0
  52. package/dist/rescue/analyzer.js +137 -0
  53. package/dist/rescue/analyzer.js.map +1 -0
  54. package/dist/rescue/builder.d.ts +23 -0
  55. package/dist/rescue/builder.d.ts.map +1 -0
  56. package/dist/rescue/builder.js +164 -0
  57. package/dist/rescue/builder.js.map +1 -0
  58. package/dist/security/key-rotation.d.ts +153 -0
  59. package/dist/security/key-rotation.d.ts.map +1 -0
  60. package/dist/security/key-rotation.js +354 -0
  61. package/dist/security/key-rotation.js.map +1 -0
  62. package/dist/{sdk/semantics → semantics}/analyzer.d.ts.map +1 -1
  63. package/dist/{sdk/semantics → semantics}/analyzer.js.map +1 -1
  64. package/dist/semantics/decoder.d.ts.map +1 -0
  65. package/dist/semantics/decoder.js.map +1 -0
  66. package/dist/{sdk/semantics → semantics}/graph.d.ts.map +1 -1
  67. package/dist/{sdk/semantics → semantics}/graph.js.map +1 -1
  68. package/dist/semantics/idl-registry.d.ts +8 -0
  69. package/dist/semantics/idl-registry.d.ts.map +1 -0
  70. package/dist/{sdk/semantics → semantics}/idl-registry.js +23 -7
  71. package/dist/semantics/idl-registry.js.map +1 -0
  72. package/dist/semantics/types.d.ts +10 -0
  73. package/dist/semantics/types.d.ts.map +1 -0
  74. package/dist/{sdk → semantics}/types.js.map +1 -1
  75. package/dist/types.d.ts +23 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js.map +1 -0
  78. package/dist/utils/address.d.ts +10 -0
  79. package/dist/utils/address.d.ts.map +1 -0
  80. package/dist/utils/address.js +45 -0
  81. package/dist/utils/address.js.map +1 -0
  82. package/dist/utils/config.d.ts.map +1 -0
  83. package/dist/utils/config.js.map +1 -0
  84. package/dist/utils/logger.d.ts.map +1 -0
  85. package/dist/utils/logger.js.map +1 -0
  86. package/package.json +39 -76
  87. package/LICENSE +0 -21
  88. package/README.md +0 -123
  89. package/SECURITY.md +0 -174
  90. package/bin/solvoid-scan +0 -2
  91. package/dist/cli/privacy-scan.d.ts +0 -11
  92. package/dist/cli/privacy-scan.d.ts.map +0 -1
  93. package/dist/cli/privacy-scan.js +0 -112
  94. package/dist/cli/privacy-scan.js.map +0 -1
  95. package/dist/cli/solvoid-scan.d.ts +0 -13
  96. package/dist/cli/solvoid-scan.d.ts.map +0 -1
  97. package/dist/cli/solvoid-scan.js +0 -174
  98. package/dist/cli/solvoid-scan.js.map +0 -1
  99. package/dist/cli/test-forensics.d.ts +0 -2
  100. package/dist/cli/test-forensics.d.ts.map +0 -1
  101. package/dist/cli/test-forensics.js +0 -90
  102. package/dist/cli/test-forensics.js.map +0 -1
  103. package/dist/cli/test-scenarios.d.ts +0 -2
  104. package/dist/cli/test-scenarios.d.ts.map +0 -1
  105. package/dist/cli/test-scenarios.js +0 -96
  106. package/dist/cli/test-scenarios.js.map +0 -1
  107. package/dist/examples/enterprise-demo.js +0 -65
  108. package/dist/sdk/client.d.ts +0 -77
  109. package/dist/sdk/client.d.ts.map +0 -1
  110. package/dist/sdk/client.js +0 -180
  111. package/dist/sdk/client.js.map +0 -1
  112. package/dist/sdk/compliance/identity.d.ts +0 -34
  113. package/dist/sdk/compliance/identity.d.ts.map +0 -1
  114. package/dist/sdk/compliance/identity.js +0 -55
  115. package/dist/sdk/compliance/identity.js.map +0 -1
  116. package/dist/sdk/compliance/threat-model.d.ts +0 -14
  117. package/dist/sdk/compliance/threat-model.d.ts.map +0 -1
  118. package/dist/sdk/compliance/threat-model.js +0 -101
  119. package/dist/sdk/compliance/threat-model.js.map +0 -1
  120. package/dist/sdk/forensics/mev.js +0 -50
  121. package/dist/sdk/forensics/order-flow.d.ts +0 -20
  122. package/dist/sdk/forensics/order-flow.d.ts.map +0 -1
  123. package/dist/sdk/forensics/order-flow.js +0 -104
  124. package/dist/sdk/forensics/order-flow.js.map +0 -1
  125. package/dist/sdk/forensics/simulation.d.ts +0 -14
  126. package/dist/sdk/forensics/simulation.d.ts.map +0 -1
  127. package/dist/sdk/forensics/simulation.js +0 -45
  128. package/dist/sdk/forensics/simulation.js.map +0 -1
  129. package/dist/sdk/index.d.ts.map +0 -1
  130. package/dist/sdk/index.js.map +0 -1
  131. package/dist/sdk/network/shadow-rpc.d.ts +0 -18
  132. package/dist/sdk/network/shadow-rpc.d.ts.map +0 -1
  133. package/dist/sdk/network/shadow-rpc.js +0 -32
  134. package/dist/sdk/network/shadow-rpc.js.map +0 -1
  135. package/dist/sdk/obfuscator.d.ts +0 -36
  136. package/dist/sdk/obfuscator.d.ts.map +0 -1
  137. package/dist/sdk/obfuscator.js +0 -77
  138. package/dist/sdk/obfuscator.js.map +0 -1
  139. package/dist/sdk/passport/manager.d.ts.map +0 -1
  140. package/dist/sdk/passport/manager.js +0 -107
  141. package/dist/sdk/passport/manager.js.map +0 -1
  142. package/dist/sdk/pipeline.d.ts +0 -34
  143. package/dist/sdk/pipeline.d.ts.map +0 -1
  144. package/dist/sdk/pipeline.js +0 -81
  145. package/dist/sdk/pipeline.js.map +0 -1
  146. package/dist/sdk/privacy/confidential-transfer.d.ts +0 -81
  147. package/dist/sdk/privacy/confidential-transfer.d.ts.map +0 -1
  148. package/dist/sdk/privacy/confidential-transfer.js +0 -158
  149. package/dist/sdk/privacy/confidential-transfer.js.map +0 -1
  150. package/dist/sdk/privacy/history.d.ts +0 -11
  151. package/dist/sdk/privacy/history.d.ts.map +0 -1
  152. package/dist/sdk/privacy/history.js +0 -110
  153. package/dist/sdk/privacy/history.js.map +0 -1
  154. package/dist/sdk/privacy/light-protocol.d.ts +0 -42
  155. package/dist/sdk/privacy/light-protocol.d.ts.map +0 -1
  156. package/dist/sdk/privacy/light-protocol.js +0 -83
  157. package/dist/sdk/privacy/light-protocol.js.map +0 -1
  158. package/dist/sdk/privacy/relayer.d.ts.map +0 -1
  159. package/dist/sdk/privacy/relayer.js.map +0 -1
  160. package/dist/sdk/privacy/safe-obfuscator.d.ts +0 -38
  161. package/dist/sdk/privacy/safe-obfuscator.d.ts.map +0 -1
  162. package/dist/sdk/privacy/safe-obfuscator.js +0 -101
  163. package/dist/sdk/privacy/safe-obfuscator.js.map +0 -1
  164. package/dist/sdk/privacy/shield.d.ts +0 -34
  165. package/dist/sdk/privacy/shield.d.ts.map +0 -1
  166. package/dist/sdk/privacy/shield.js +0 -174
  167. package/dist/sdk/privacy/shield.js.map +0 -1
  168. package/dist/sdk/privacy/zk.js +0 -43
  169. package/dist/sdk/privacy-engine.d.ts.map +0 -1
  170. package/dist/sdk/privacy-engine.js.map +0 -1
  171. package/dist/sdk/registry/idl-fetcher.d.ts +0 -17
  172. package/dist/sdk/registry/idl-fetcher.d.ts.map +0 -1
  173. package/dist/sdk/registry/idl-fetcher.js.map +0 -1
  174. package/dist/sdk/registry/programs.d.ts.map +0 -1
  175. package/dist/sdk/registry/programs.js.map +0 -1
  176. package/dist/sdk/rescue/analyzer.d.ts +0 -22
  177. package/dist/sdk/rescue/analyzer.d.ts.map +0 -1
  178. package/dist/sdk/rescue/analyzer.js +0 -46
  179. package/dist/sdk/rescue/analyzer.js.map +0 -1
  180. package/dist/sdk/rescue/builder.d.ts +0 -16
  181. package/dist/sdk/rescue/builder.d.ts.map +0 -1
  182. package/dist/sdk/rescue/builder.js +0 -33
  183. package/dist/sdk/rescue/builder.js.map +0 -1
  184. package/dist/sdk/semantics/decoder.d.ts.map +0 -1
  185. package/dist/sdk/semantics/decoder.js.map +0 -1
  186. package/dist/sdk/semantics/idl-registry.d.ts +0 -7
  187. package/dist/sdk/semantics/idl-registry.d.ts.map +0 -1
  188. package/dist/sdk/semantics/idl-registry.js.map +0 -1
  189. package/dist/sdk/semantics/types.d.ts +0 -44
  190. package/dist/sdk/semantics/types.d.ts.map +0 -1
  191. package/dist/sdk/semantics/types.js.map +0 -1
  192. package/dist/sdk/simulator.d.ts +0 -15
  193. package/dist/sdk/simulator.d.ts.map +0 -1
  194. package/dist/sdk/simulator.js +0 -133
  195. package/dist/sdk/simulator.js.map +0 -1
  196. package/dist/sdk/types.d.ts +0 -53
  197. package/dist/sdk/types.d.ts.map +0 -1
  198. package/dist/sdk/utils/config.d.ts.map +0 -1
  199. package/dist/sdk/utils/config.js.map +0 -1
  200. package/dist/sdk/utils/logger.d.ts.map +0 -1
  201. package/dist/sdk/utils/logger.js.map +0 -1
  202. package/dist/tests/unit/idl-registry.test.d.ts +0 -2
  203. package/dist/tests/unit/idl-registry.test.d.ts.map +0 -1
  204. package/dist/tests/unit/idl-registry.test.js +0 -35
  205. package/dist/tests/unit/idl-registry.test.js.map +0 -1
  206. package/dist/tools/exploit_demonstration.js +0 -99
  207. package/dist/tools/gen-tx.js +0 -29
  208. package/dist/tools/get-recent-tx.js +0 -18
  209. /package/dist/{sdk/privacy → privacy}/relayer.d.ts +0 -0
  210. /package/dist/{sdk/privacy → privacy}/relayer.js +0 -0
  211. /package/dist/{sdk/registry → registry}/programs.d.ts +0 -0
  212. /package/dist/{sdk/registry → registry}/programs.js +0 -0
  213. /package/dist/{sdk/semantics → semantics}/analyzer.d.ts +0 -0
  214. /package/dist/{sdk/semantics → semantics}/analyzer.js +0 -0
  215. /package/dist/{sdk/semantics → semantics}/decoder.d.ts +0 -0
  216. /package/dist/{sdk/semantics → semantics}/decoder.js +0 -0
  217. /package/dist/{sdk/semantics → semantics}/graph.d.ts +0 -0
  218. /package/dist/{sdk/semantics → semantics}/graph.js +0 -0
  219. /package/dist/{sdk/semantics → semantics}/types.js +0 -0
  220. /package/dist/{sdk/types.js → types.js} +0 -0
  221. /package/dist/{sdk/utils → utils}/config.d.ts +0 -0
  222. /package/dist/{sdk/utils → utils}/config.js +0 -0
  223. /package/dist/{sdk/utils → utils}/logger.d.ts +0 -0
  224. /package/dist/{sdk/utils → utils}/logger.js +0 -0
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SimulationEngine = void 0;
4
- class SimulationEngine {
5
- constructor(_rpcUrl) {
6
- // RPC URL stored for future use
7
- }
8
- /**
9
- * Placeholder for transaction simulation
10
- */
11
- async simulate(_txJson) {
12
- // Simulating historical transactions requires the original state
13
- return null;
14
- }
15
- /**
16
- * Parses simulation logs to find PII or logic leaks.
17
- */
18
- analyzeLogs(logs) {
19
- const leaks = [];
20
- const PII_PATTERNS = [
21
- { regex: /User: ([a-zA-Z0-9]{32,44})/i, desc: "Log explicitly prints User Address" },
22
- { regex: /Amount: (\d+)/i, desc: "Log leaks Exact Amount" },
23
- { regex: /Email: ([\w.@]+)/i, desc: "Log contains email-like pattern" }
24
- ];
25
- logs.forEach((log, index) => {
26
- if (log.includes("Program log:")) {
27
- PII_PATTERNS.forEach(pat => {
28
- const match = log.match(pat.regex);
29
- if (match) {
30
- leaks.push({
31
- type: "log-trace",
32
- scope: `log:${index}`,
33
- description: `${pat.desc} ('${match[1]}').`,
34
- remediation: "Remove `msg!` calls dumping PII in production programs.",
35
- severity: "MEDIUM"
36
- });
37
- }
38
- });
39
- }
40
- });
41
- return leaks;
42
- }
43
- }
44
- exports.SimulationEngine = SimulationEngine;
45
- //# sourceMappingURL=simulation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulation.js","sourceRoot":"","sources":["../../../sdk/forensics/simulation.ts"],"names":[],"mappings":";;;AAGA,MAAa,gBAAgB;IACzB,YAAY,OAAe;QACvB,gCAAgC;IACpC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ,CAAC,OAAwB;QAC1C,iEAAiE;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,IAAc;QAC7B,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,MAAM,YAAY,GAAG;YACjB,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,oCAAoC,EAAE;YACpF,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,wBAAwB,EAAE;YAC3D,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,iCAAiC,EAAE;SAC1E,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACxB,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/B,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACnC,IAAI,KAAK,EAAE,CAAC;wBACR,KAAK,CAAC,IAAI,CAAC;4BACP,IAAI,EAAE,WAAW;4BACjB,KAAK,EAAE,OAAO,KAAK,EAAE;4BACrB,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK;4BAC3C,WAAW,EAAE,yDAAyD;4BACtE,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA5CD,4CA4CC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sdk/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGrF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../sdk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0BAA0B;AAC1B,0CAAwB;AAExB,gEAAgE;AAChE,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AAExB,mCAAmC;AACnC,2CAAiD;AAAxC,uGAAA,aAAa,OAAA;AACtB,6CAAmD;AAA1C,yGAAA,cAAc,OAAA;AAEvB,mCAAmC;AACnC,mCAAwD;AAA/C,uGAAA,aAAa,OAAA;AAEtB,mEAAmE;AACnE,sDAA2D;AAAlD,gHAAA,iBAAiB,OAAA;AAC1B,gDAAqF;AAA5E,0GAAA,cAAc,OAAA;AAAE,2GAAA,eAAe,OAAA;AAAE,yGAAA,aAAa,OAAA;AAEvD,iCAAiC;AACjC,yCAAyD;AAAhD,sGAAA,YAAY,OAAA"}
@@ -1,18 +0,0 @@
1
- import { Connection, VersionedTransaction, Transaction } from '@solana/web3.js';
2
- import winston from 'winston';
3
- /**
4
- * Mask tx metadata from RPC providers by routing through multiple hops.
5
- */
6
- export declare class ShadowRPC {
7
- private connection;
8
- private logger;
9
- constructor(connection: Connection, logger: winston.Logger);
10
- /**
11
- * Randomized relay routing to hide original broadcast IP.
12
- */
13
- broadcastPrivately(tx: VersionedTransaction | Transaction, options?: {
14
- hops: number;
15
- stealthMode: boolean;
16
- }): Promise<string>;
17
- }
18
- //# sourceMappingURL=shadow-rpc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shadow-rpc.d.ts","sourceRoot":"","sources":["../../../sdk/network/shadow-rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,oBAAoB,EACpB,WAAW,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAiB;gBAEnB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM;IAK1D;;OAEG;IACU,kBAAkB,CAC3B,EAAE,EAAE,oBAAoB,GAAG,WAAW,EACtC,OAAO,GAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAmC,GACjF,OAAO,CAAC,MAAM,CAAC;CAsBrB"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ShadowRPC = void 0;
4
- /**
5
- * Mask tx metadata from RPC providers by routing through multiple hops.
6
- */
7
- class ShadowRPC {
8
- constructor(connection, logger) {
9
- this.connection = connection;
10
- this.logger = logger;
11
- }
12
- /**
13
- * Randomized relay routing to hide original broadcast IP.
14
- */
15
- async broadcastPrivately(tx, options = { hops: 3, stealthMode: true }) {
16
- this.logger.info(`ShadowRPC: Initiating ${options.hops}-hop broadcast...`);
17
- // Use Noise protocol for the encrypted relay tunnel
18
- this.logger.info("ShadowRPC: Establishing encrypted tunnel...");
19
- // Simulate a dynamic relay chain
20
- const relayIps = Array.from({ length: options.hops }, () => `${Math.floor(Math.random() * 255)}.${Math.floor(Math.random() * 255)}.${Math.floor(Math.random() * 255)}.${Math.floor(Math.random() * 255)}`);
21
- this.logger.info(`ShadowRPC: Routing chain: ${relayIps.join(' -> ')}`);
22
- const rawTransaction = tx.serialize();
23
- const txid = await this.connection.sendRawTransaction(rawTransaction, {
24
- skipPreflight: true,
25
- maxRetries: 2
26
- });
27
- this.logger.info(`ShadowRPC: Broadcast success. TX: ${txid}`);
28
- return txid;
29
- }
30
- }
31
- exports.ShadowRPC = ShadowRPC;
32
- //# sourceMappingURL=shadow-rpc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shadow-rpc.js","sourceRoot":"","sources":["../../../sdk/network/shadow-rpc.ts"],"names":[],"mappings":";;;AAOA;;GAEG;AACH,MAAa,SAAS;IAIlB,YAAY,UAAsB,EAAE,MAAsB;QACtD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB,CAC3B,EAAsC,EACtC,UAAkD,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;QAEhF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,IAAI,mBAAmB,CAAC,CAAC;QAE3E,oDAAoD;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAEhE,iCAAiC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CACvD,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAChJ,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEvE,MAAM,cAAc,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,cAAc,EAAE;YAClE,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,CAAC;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AArCD,8BAqCC"}
@@ -1,36 +0,0 @@
1
- /**
2
- * ⚠️ DEPRECATED - DO NOT USE FOR PRIVACY ⚠️
3
- *
4
- * This module is DEPRECATED and exists only for backwards compatibility.
5
- * See module documentation for why this was deprecated.
6
- */
7
- import { Keypair, VersionedTransaction, PublicKey } from '@solana/web3.js';
8
- /**
9
- * @deprecated This interface is for a deprecated feature
10
- */
11
- export interface ObfuscationConfig {
12
- userMainWallet: PublicKey;
13
- relayerFeePayer?: PublicKey;
14
- iUnderstandThisIsNotPrivate: boolean;
15
- }
16
- /**
17
- * @deprecated This class provides NO privacy. Use for educational purposes only.
18
- */
19
- export declare class TransactionObfuscator {
20
- private static MEMO_PROGRAM_ID;
21
- /**
22
- * @deprecated This method provides NO privacy guarantee.
23
- * @throws Error if iUnderstandThisIsNotPrivate is not set to true
24
- */
25
- obfuscateTransaction(tx: VersionedTransaction, config: ObfuscationConfig): Promise<{
26
- obfuscatedTx: VersionedTransaction;
27
- sessionKey: Keypair;
28
- removedInstructions: number[];
29
- securityWarning: string;
30
- }>;
31
- }
32
- /**
33
- * Get privacy recommendation based on use case
34
- */
35
- export declare function getPrivacyRecommendation(useCase: 'mev' | 'amounts' | 'full'): string;
36
- //# sourceMappingURL=obfuscator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"obfuscator.d.ts","sourceRoot":"","sources":["../../sdk/obfuscator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACH,OAAO,EAEP,oBAAoB,EACpB,SAAS,EAGZ,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,2BAA2B,EAAE,OAAO,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,MAAM,CAAC,eAAe,CAAiD;IAE/E;;;OAGG;IACU,oBAAoB,CAC7B,EAAE,EAAE,oBAAoB,EACxB,MAAM,EAAE,iBAAiB,GAC1B,OAAO,CAAC;QACP,YAAY,EAAE,oBAAoB,CAAC;QACnC,UAAU,EAAE,OAAO,CAAC;QACpB,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM,CAAC;KAC3B,CAAC;CAiDL;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAWpF"}
@@ -1,77 +0,0 @@
1
- "use strict";
2
- /**
3
- * ⚠️ DEPRECATED - DO NOT USE FOR PRIVACY ⚠️
4
- *
5
- * This module is DEPRECATED and exists only for backwards compatibility.
6
- * See module documentation for why this was deprecated.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.TransactionObfuscator = void 0;
10
- exports.getPrivacyRecommendation = getPrivacyRecommendation;
11
- const web3_js_1 = require("@solana/web3.js");
12
- const logger_1 = require("./utils/logger");
13
- /**
14
- * @deprecated This class provides NO privacy. Use for educational purposes only.
15
- */
16
- class TransactionObfuscator {
17
- /**
18
- * @deprecated This method provides NO privacy guarantee.
19
- * @throws Error if iUnderstandThisIsNotPrivate is not set to true
20
- */
21
- async obfuscateTransaction(tx, config) {
22
- if (!config.iUnderstandThisIsNotPrivate) {
23
- throw new Error("SECURITY ERROR: You must set 'iUnderstandThisIsNotPrivate: true'. " +
24
- "This acknowledges that this method provides NO PRIVACY.");
25
- }
26
- logger_1.logger.warn("\n" + "=".repeat(80));
27
- logger_1.logger.warn("⚠️ CRITICAL PRIVACY WARNING ⚠️");
28
- logger_1.logger.warn("You are using DEPRECATED obfuscation that provides NO PRIVACY.");
29
- logger_1.logger.warn("=".repeat(80) + "\n");
30
- const addressLookupTables = [];
31
- const message = web3_js_1.TransactionMessage.decompile(tx.message, { addressLookupTableAccounts: addressLookupTables });
32
- const sanitizedInstructions = [];
33
- const removedIndices = [];
34
- message.instructions.forEach((ix, index) => {
35
- const progId = ix.programId.toBase58();
36
- if (progId === TransactionObfuscator.MEMO_PROGRAM_ID ||
37
- progId === "Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo") {
38
- removedIndices.push(index);
39
- return;
40
- }
41
- sanitizedInstructions.push(ix);
42
- });
43
- const sessionKey = web3_js_1.Keypair.generate();
44
- const newMessage = new web3_js_1.TransactionMessage({
45
- payerKey: sessionKey.publicKey,
46
- recentBlockhash: message.recentBlockhash,
47
- instructions: sanitizedInstructions
48
- }).compileToV0Message(addressLookupTables);
49
- const newTx = new web3_js_1.VersionedTransaction(newMessage);
50
- newTx.sign([sessionKey]);
51
- return {
52
- obfuscatedTx: newTx,
53
- sessionKey: sessionKey,
54
- removedInstructions: removedIndices,
55
- securityWarning: "THIS TRANSACTION IS NOT PRIVATE. " +
56
- "The SessionKey must be funded from your wallet, creating a direct on-chain link."
57
- };
58
- }
59
- }
60
- exports.TransactionObfuscator = TransactionObfuscator;
61
- TransactionObfuscator.MEMO_PROGRAM_ID = "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";
62
- /**
63
- * Get privacy recommendation based on use case
64
- */
65
- function getPrivacyRecommendation(useCase) {
66
- switch (useCase) {
67
- case 'mev':
68
- return "For MEV protection, use Jito bundles via @jito-foundation/jito-ts.";
69
- case 'amounts':
70
- return "For hiding transaction amounts, use Token-2022 Confidential Transfers.";
71
- case 'full':
72
- return "For full privacy, use Light Protocol via @lightprotocol/stateless.js.";
73
- default:
74
- return "No privacy solution can be recommended without understanding your threat model.";
75
- }
76
- }
77
- //# sourceMappingURL=obfuscator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"obfuscator.js","sourceRoot":"","sources":["../../sdk/obfuscator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA6FH,4DAWC;AAtGD,6CAOyB;AACzB,2CAAwC;AAWxC;;GAEG;AACH,MAAa,qBAAqB;IAG9B;;;OAGG;IACI,KAAK,CAAC,oBAAoB,CAC7B,EAAwB,EACxB,MAAyB;QAOzB,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACX,oEAAoE;gBACpE,yDAAyD,CAC5D,CAAC;QACN,CAAC;QAED,eAAM,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,eAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,eAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC9E,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAEnC,MAAM,mBAAmB,GAAgC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,4BAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAE9G,MAAM,qBAAqB,GAA6B,EAAE,CAAC;QAC3D,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,MAAM,KAAK,qBAAqB,CAAC,eAAe;gBAChD,MAAM,KAAK,6CAA6C,EAAE,CAAC;gBAC3D,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO;YACX,CAAC;YACD,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,iBAAO,CAAC,QAAQ,EAAE,CAAC;QAEtC,MAAM,UAAU,GAAG,IAAI,4BAAkB,CAAC;YACtC,QAAQ,EAAE,UAAU,CAAC,SAAS;YAC9B,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,YAAY,EAAE,qBAAqB;SACtC,CAAC,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;QAE3C,MAAM,KAAK,GAAG,IAAI,8BAAoB,CAAC,UAAU,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEzB,OAAO;YACH,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,UAAU;YACtB,mBAAmB,EAAE,cAAc;YACnC,eAAe,EACX,mCAAmC;gBACnC,kFAAkF;SACzF,CAAC;IACN,CAAC;;AA/DL,sDAgEC;AA/DkB,qCAAe,GAAG,6CAA6C,CAAC;AAiEnF;;GAEG;AACH,SAAgB,wBAAwB,CAAC,OAAmC;IACxE,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,KAAK;YACN,OAAO,oEAAoE,CAAC;QAChF,KAAK,SAAS;YACV,OAAO,wEAAwE,CAAC;QACpF,KAAK,MAAM;YACP,OAAO,uEAAuE,CAAC;QACnF;YACI,OAAO,iFAAiF,CAAC;IACjG,CAAC;AACL,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../sdk/passport/manager.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,GAAE,MAAkC;IAI3D;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IAQpD;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAYpD,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,YAAY;CAQvB"}
@@ -1,107 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.PassportManager = void 0;
37
- const fs = __importStar(require("fs"));
38
- class PassportManager {
39
- constructor(storagePath = './privacy-passport.json') {
40
- this.storagePath = storagePath;
41
- }
42
- /**
43
- * Load or create a new privacy passport for the given wallet.
44
- */
45
- getPassport(address) {
46
- if (!fs.existsSync(this.storagePath)) {
47
- return this.initializePassport(address);
48
- }
49
- const data = JSON.parse(fs.readFileSync(this.storagePath, 'utf8'));
50
- return data[address] || this.initializePassport(address);
51
- }
52
- /**
53
- * Update history and trigger badge checks based on latest audit.
54
- */
55
- updateScore(address, newScore) {
56
- const passport = this.getPassport(address);
57
- passport.overallScore = newScore;
58
- passport.scoreHistory.push({
59
- timestamp: Date.now(),
60
- score: newScore
61
- });
62
- this.checkBadges(passport);
63
- this.savePassport(address, passport);
64
- }
65
- initializePassport(address) {
66
- return {
67
- walletAddress: address,
68
- overallScore: 100,
69
- scoreHistory: [],
70
- badges: [],
71
- recommendations: ["Perform your first privacy scan to earn the 'First Contact' badge."]
72
- };
73
- }
74
- /**
75
- * Milestone-based badge logic.
76
- */
77
- checkBadges(passport) {
78
- const badgesToAdd = [];
79
- if (passport.overallScore >= 95 && !passport.badges.some(b => b.name === "Zero-Trace Master")) {
80
- badgesToAdd.push({
81
- name: "Zero-Trace Master",
82
- icon: "🛡️",
83
- description: "Maintained a privacy score above 95.",
84
- dateEarned: Date.now()
85
- });
86
- }
87
- if (passport.scoreHistory.length > 5 && !passport.badges.some(b => b.name === "Consistent Ghost")) {
88
- badgesToAdd.push({
89
- name: "Consistent Ghost",
90
- icon: "👻",
91
- description: "Performed more than 5 successful privacy audits.",
92
- dateEarned: Date.now()
93
- });
94
- }
95
- passport.badges.push(...badgesToAdd);
96
- }
97
- savePassport(address, passport) {
98
- let allData = {};
99
- if (fs.existsSync(this.storagePath)) {
100
- allData = JSON.parse(fs.readFileSync(this.storagePath, 'utf8'));
101
- }
102
- allData[address] = passport;
103
- fs.writeFileSync(this.storagePath, JSON.stringify(allData, null, 2));
104
- }
105
- }
106
- exports.PassportManager = PassportManager;
107
- //# sourceMappingURL=manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../sdk/passport/manager.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import { Connection, PublicKey } from '@solana/web3.js';
2
- import { PrivacyShield } from './privacy/shield';
3
- export declare class PrivacyPipeline {
4
- private connection;
5
- private engine;
6
- private shield;
7
- constructor(connection: Connection, shield: PrivacyShield);
8
- /**
9
- * Map web3.js signatures to privacy results by analyzing the last 10 txs.
10
- */
11
- processAddress(address: PublicKey): Promise<({
12
- signature: string;
13
- leaks: import("./types").Leak[];
14
- remediation: {
15
- action: string;
16
- data: {
17
- commitment: string;
18
- nullifierHash: string;
19
- };
20
- description: string;
21
- } | null;
22
- privacyScore: number;
23
- } | {
24
- signature: string;
25
- leaks: never[];
26
- privacyScore: number;
27
- remediation?: undefined;
28
- })[]>;
29
- /**
30
- * Suggest specific fixes like shielding if we hit critical leak thresholds.
31
- */
32
- private generateRemediation;
33
- }
34
- //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../sdk/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,eAAe;IACxB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAgB;gBAElB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa;IAMzD;;OAEG;IACU,cAAc,CAAC,OAAO,EAAE,SAAS;;;;;;;;;;;;;;;;;;IAoD9C;;OAEG;YACW,mBAAmB;CAkBpC"}
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PrivacyPipeline = void 0;
4
- const privacy_engine_1 = require("./privacy-engine");
5
- class PrivacyPipeline {
6
- constructor(connection, shield) {
7
- this.connection = connection;
8
- this.engine = new privacy_engine_1.PrivacyEngine();
9
- this.shield = shield;
10
- }
11
- /**
12
- * Map web3.js signatures to privacy results by analyzing the last 10 txs.
13
- */
14
- async processAddress(address) {
15
- const signatures = await this.connection.getSignaturesForAddress(address);
16
- const results = [];
17
- for (const sig of signatures.slice(0, 10)) {
18
- const tx = await this.connection.getTransaction(sig.signature, {
19
- maxSupportedTransactionVersion: 0,
20
- });
21
- if (tx) {
22
- // Parse standard Solana tx structure into ours
23
- const txData = {
24
- message: {
25
- accountKeys: tx.transaction.message.staticAccountKeys.map((k) => k.toBase58()),
26
- header: tx.transaction.message.header,
27
- instructions: tx.transaction.message.compiledInstructions.map((ix) => ({
28
- programIdIndex: ix.programIdIndex,
29
- accounts: ix.accountKeyIndexes,
30
- data: Buffer.from(ix.data).toString('base64')
31
- }))
32
- },
33
- meta: {
34
- innerInstructions: tx.meta?.innerInstructions || [],
35
- logMessages: tx.meta?.logMessages || []
36
- },
37
- signatures: [sig.signature]
38
- };
39
- const leaks = this.engine.analyzeTransaction(txData);
40
- const privacyScore = this.engine.calculateScore(leaks);
41
- if (leaks.length > 0) {
42
- const remediation = await this.generateRemediation(address, leaks);
43
- results.push({
44
- signature: sig.signature,
45
- leaks,
46
- remediation,
47
- privacyScore
48
- });
49
- }
50
- else {
51
- results.push({
52
- signature: sig.signature,
53
- leaks: [],
54
- privacyScore: 100
55
- });
56
- }
57
- }
58
- }
59
- return results;
60
- }
61
- /**
62
- * Suggest specific fixes like shielding if we hit critical leak thresholds.
63
- */
64
- async generateRemediation(_user, leaks) {
65
- const criticalLeaks = leaks.filter(l => l.severity === 'CRITICAL' || l.severity === 'HIGH');
66
- if (criticalLeaks.length > 0) {
67
- const commitmentData = this.shield.generateCommitment();
68
- return {
69
- action: 'SHIELD_BALANCE',
70
- data: {
71
- commitment: commitmentData.commitmentHex,
72
- nullifierHash: commitmentData.nullifierHash.toString('hex'),
73
- },
74
- description: `High risk leaks found. Shielding recommended to break clear identity links.`,
75
- };
76
- }
77
- return null;
78
- }
79
- }
80
- exports.PrivacyPipeline = PrivacyPipeline;
81
- //# sourceMappingURL=pipeline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../sdk/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,81 +0,0 @@
1
- /**
2
- * Token-2022 Confidential Transfers Manager
3
- *
4
- * IMPORTANT: This module provides interfaces for Token-2022's Confidential Transfer extension.
5
- *
6
- * CURRENT STATUS:
7
- * - ✅ supportsConfidentiality(): Check if a mint supports confidential transfers
8
- * - ⚠️ Other methods require the full @solana/spl-token-confidential package
9
- *
10
- * PRIVACY GUARANTEES:
11
- * - Encrypted balances hide the AMOUNT from chain observers
12
- * - Sender and receiver addresses are STILL VISIBLE
13
- * - Transaction timing is STILL VISIBLE
14
- * - This is AMOUNT privacy, not identity privacy
15
- *
16
- * FOR FULL PRIVACY: Use Light Protocol (LightProtocolManager) which provides
17
- * identity privacy through ZK state compression.
18
- */
19
- import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
20
- /**
21
- * Error thrown when ZK proof generation is required but not available
22
- */
23
- export declare class ZkProofRequiredError extends Error {
24
- constructor(operation: string);
25
- }
26
- /**
27
- * Manager for Token2022 Confidential Transfers.
28
- * Provides safe wrappers around encrypted balance operations.
29
- *
30
- * NOTE: This is a simplified interface. For full functionality,
31
- * use @solana/spl-token-confidential which includes WASM modules
32
- * for ZK proof generation.
33
- */
34
- export declare class ConfidentialTokenManager {
35
- private connection;
36
- constructor(connection: Connection);
37
- /**
38
- * Checks if a Mint supports Confidential Transfers.
39
- *
40
- * @param mint - The mint public key to check
41
- * @returns true if the mint has the ConfidentialTransferMint extension
42
- */
43
- supportsConfidentiality(mint: PublicKey): Promise<boolean>;
44
- /**
45
- * Creates instructions to Initialize a User's Confidential Token Account.
46
- *
47
- * ⚠️ REQUIRES @solana/spl-token-confidential package
48
- *
49
- * This is a placeholder that throws an error with guidance.
50
- */
51
- createEnableConfidentialAccountInstructions(mint: PublicKey, _owner: PublicKey, _tokenAccount: PublicKey): Promise<TransactionInstruction[]>;
52
- /**
53
- * Creates an instruction to DEPOSIT (Public -> Private).
54
- *
55
- * ⚠️ REQUIRES @solana/spl-token-confidential package
56
- */
57
- createDepositPublicToPrivate(_mint: PublicKey, _tokenAccount: PublicKey, _owner: PublicKey, _amount: number | bigint, _decimals?: number): Promise<TransactionInstruction>;
58
- /**
59
- * Creates an ENCRYPTED TRANSFER instruction (Private -> Private).
60
- *
61
- * ⚠️ NOT IMPLEMENTED - REQUIRES ZK PROOF GENERATION ⚠️
62
- *
63
- * @throws ZkProofRequiredError Always - this operation requires external ZK tooling
64
- */
65
- createEncryptedTransfer(_mint: PublicKey, _sourceTokenAccount: PublicKey, _destTokenAccount: PublicKey, _owner: PublicKey, _amount: number | bigint, _sourceElGamalKey: PublicKey): Promise<TransactionInstruction>;
66
- /**
67
- * Creates an instruction to WITHDRAW (Private -> Public).
68
- *
69
- * ⚠️ REQUIRES @solana/spl-token-confidential package
70
- */
71
- createWithdrawPrivateToPublic(_mint: PublicKey, _tokenAccount: PublicKey, _owner: PublicKey, _amount: number | bigint, _decimals?: number): Promise<TransactionInstruction>;
72
- /**
73
- * Get privacy capabilities summary for this manager
74
- */
75
- static getPrivacyCapabilities(): {
76
- hides: string[];
77
- exposes: string[];
78
- recommendation: string;
79
- };
80
- }
81
- //# sourceMappingURL=confidential-transfer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"confidential-transfer.d.ts","sourceRoot":"","sources":["../../../sdk/privacy/confidential-transfer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACH,UAAU,EACV,SAAS,EACT,sBAAsB,EACzB,MAAM,iBAAiB,CAAC;AAKzB;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;gBAC/B,SAAS,EAAE,MAAM;CAahC;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IACjC,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,EAAE,UAAU;IAIlC;;;;;OAKG;IACU,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IA4CvE;;;;;;OAMG;IACU,2CAA2C,CACpD,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,SAAS,GACzB,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAWpC;;;;OAIG;IACU,4BAA4B,CACrC,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,sBAAsB,CAAC;IAIlC;;;;;;OAMG;IACU,uBAAuB,CAChC,KAAK,EAAE,SAAS,EAChB,mBAAmB,EAAE,SAAS,EAC9B,iBAAiB,EAAE,SAAS,EAC5B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,iBAAiB,EAAE,SAAS,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAIlC;;;;OAIG;IACU,6BAA6B,CACtC,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,sBAAsB,CAAC;IAIlC;;OAEG;WACW,sBAAsB,IAAI;QACpC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KAC1B;CAkBJ"}