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.
- package/README.md +116 -258
- package/SECURITY.md +27 -24
- package/dist/cli/commands/ghost.d.ts +3 -3
- package/dist/cli/commands/ghost.d.ts.map +1 -1
- package/dist/cli/commands/ghost.js +67 -91
- package/dist/cli/commands/ghost.js.map +1 -1
- package/dist/cli/commands/rescue.d.ts +4 -0
- package/dist/cli/commands/rescue.d.ts.map +1 -1
- package/dist/cli/commands/rescue.js +102 -199
- package/dist/cli/commands/rescue.js.map +1 -1
- package/dist/cli/demo-scan.js +48 -130
- package/dist/cli/demo-scan.js.map +1 -1
- package/dist/cli/solvoid-scan.d.ts +4 -3
- package/dist/cli/solvoid-scan.d.ts.map +1 -1
- package/dist/cli/solvoid-scan.js +55 -46
- package/dist/cli/solvoid-scan.js.map +1 -1
- package/dist/cli/utils/asset-scanner.d.ts.map +1 -1
- package/dist/cli/utils/asset-scanner.js +7 -5
- package/dist/cli/utils/asset-scanner.js.map +1 -1
- package/dist/cli/utils/badge-generator.d.ts.map +1 -1
- package/dist/cli/utils/badge-generator.js +11 -9
- package/dist/cli/utils/badge-generator.js.map +1 -1
- package/dist/cli/utils/enhanced-monitoring.d.ts +13 -0
- package/dist/cli/utils/enhanced-monitoring.d.ts.map +1 -0
- package/dist/cli/utils/enhanced-monitoring.js +46 -0
- package/dist/cli/utils/enhanced-monitoring.js.map +1 -0
- package/dist/cli/utils/enhanced-pyth-feed.d.ts +20 -0
- package/dist/cli/utils/enhanced-pyth-feed.d.ts.map +1 -0
- package/dist/cli/utils/enhanced-pyth-feed.js +64 -0
- package/dist/cli/utils/enhanced-pyth-feed.js.map +1 -0
- package/dist/cli/utils/enhanced-threat-intel.d.ts +20 -0
- package/dist/cli/utils/enhanced-threat-intel.d.ts.map +1 -0
- package/dist/cli/utils/enhanced-threat-intel.js +57 -0
- package/dist/cli/utils/enhanced-threat-intel.js.map +1 -0
- package/dist/cli/utils/env-validator.d.ts.map +1 -1
- package/dist/cli/utils/env-validator.js +6 -3
- package/dist/cli/utils/env-validator.js.map +1 -1
- package/dist/cli/utils/jito-mev-bundle.d.ts +9 -0
- package/dist/cli/utils/jito-mev-bundle.d.ts.map +1 -0
- package/dist/cli/utils/jito-mev-bundle.js +40 -0
- package/dist/cli/utils/jito-mev-bundle.js.map +1 -0
- package/dist/cli/utils/rescue-engine.d.ts +0 -4
- package/dist/cli/utils/rescue-engine.d.ts.map +1 -1
- package/dist/cli/utils/rescue-engine.js +28 -46
- package/dist/cli/utils/rescue-engine.js.map +1 -1
- package/dist/cli/utils/shadow-bridge.d.ts +20 -0
- package/dist/cli/utils/shadow-bridge.d.ts.map +1 -0
- package/dist/cli/utils/shadow-bridge.js +33 -0
- package/dist/cli/utils/shadow-bridge.js.map +1 -0
- package/dist/relayer/key-manager.d.ts +52 -0
- package/dist/relayer/key-manager.d.ts.map +1 -0
- package/dist/relayer/key-manager.js +356 -0
- package/dist/relayer/key-manager.js.map +1 -0
- package/dist/relayer/replay-protection.d.ts +94 -0
- package/dist/relayer/replay-protection.d.ts.map +1 -0
- package/dist/relayer/replay-protection.js +189 -0
- package/dist/relayer/replay-protection.js.map +1 -0
- package/dist/relayer/secure-service.d.ts +46 -0
- package/dist/relayer/secure-service.d.ts.map +1 -0
- package/dist/relayer/secure-service.js +538 -0
- package/dist/relayer/secure-service.js.map +1 -0
- package/dist/relayer/service.d.ts +25 -0
- package/dist/relayer/service.d.ts.map +1 -0
- package/dist/relayer/service.js +380 -0
- package/dist/relayer/service.js.map +1 -0
- package/dist/sdk/client.d.ts +42 -8
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/client.js +115 -242
- package/dist/sdk/client.js.map +1 -1
- package/dist/sdk/crypto/poseidon.d.ts +4 -4
- package/dist/sdk/crypto/poseidon.d.ts.map +1 -1
- package/dist/sdk/crypto/poseidon.js +34 -17
- package/dist/sdk/crypto/poseidon.js.map +1 -1
- package/dist/sdk/integrity.d.ts +3 -3
- package/dist/sdk/integrity.d.ts.map +1 -1
- package/dist/sdk/integrity.js +2 -2
- package/dist/sdk/integrity.js.map +1 -1
- package/dist/sdk/passport/manager.d.ts +15 -3
- package/dist/sdk/passport/manager.d.ts.map +1 -1
- package/dist/sdk/passport/manager.js +30 -17
- package/dist/sdk/passport/manager.js.map +1 -1
- package/dist/sdk/pipeline.d.ts.map +1 -1
- package/dist/sdk/pipeline.js +69 -12
- package/dist/sdk/pipeline.js.map +1 -1
- package/dist/sdk/polyfill.d.ts +8 -0
- package/dist/sdk/polyfill.d.ts.map +1 -0
- package/dist/sdk/polyfill.js +21 -0
- package/dist/sdk/polyfill.js.map +1 -0
- package/dist/sdk/privacy/shield.d.ts +46 -0
- package/dist/sdk/privacy/shield.d.ts.map +1 -1
- package/dist/sdk/privacy/shield.js +117 -35
- package/dist/sdk/privacy/shield.js.map +1 -1
- package/dist/sdk/privacy-engine.d.ts +17 -3
- package/dist/sdk/privacy-engine.d.ts.map +1 -1
- package/dist/sdk/privacy-engine.js +46 -20
- package/dist/sdk/privacy-engine.js.map +1 -1
- 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;
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
62
|
-
|
|
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
|
|
81
|
+
const provider = new anchor_1.AnchorProvider(connection, wallet, {
|
|
68
82
|
preflightCommitment: 'confirmed',
|
|
69
83
|
});
|
|
70
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
//
|
|
218
|
+
// Compute Poseidon(secret, nullifier, amount)
|
|
182
219
|
const commitment = await poseidon_1.PoseidonHasher.computeCommitment(secret, nullifier, BigInt(amount));
|
|
183
|
-
// Poseidon(
|
|
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("
|
|
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
|
|
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
|
-
|
|
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(`
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
280
|
-
nullifierHash:
|
|
281
|
-
|
|
282
|
-
|
|
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:
|
|
286
|
-
nullifier:
|
|
287
|
-
pathElements:
|
|
363
|
+
secret: secretBigInt.toString(),
|
|
364
|
+
nullifier: nullifierBigInt.toString(),
|
|
365
|
+
pathElements: pathElementsBigInt,
|
|
288
366
|
pathIndices: merklePath.indices
|
|
289
367
|
}, wasmPath, zkeyPath);
|
|
290
|
-
|
|
291
|
-
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAIyB;AACzB,mCAAgC;AAChC,8CAAgE;AAChE,+CAAiC;AACjC,iDAAmE;AAGnE,4CAOsB;AAEtB;;;GAGG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAK7B;;;GAGG;AACH,MAAa,aAAa;IAItB,YAAY,UAAsB,EAAE,KAAc,EAAE,MAAqB,EAAE,SAAkB;QACzF;;WAEG;QACH,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,qBAAS,EAAE,KAAK,EAAE;YAClC,MAAM,EAAE,sBAAU,CAAC,cAAc;YACjC,KAAK,EAAE,qBAAS,CAAC,OAAO;YACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK,EAAE,eAAe;SACzB,CAAC,CAAC,KAAY,CAAC;QAEhB,IAAI,SAAS,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC5B,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED;;WAEG;QACH,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC1D,UAAU,CAAC,MAAM,GAAG,eAAM,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,OAAQ,UAAkB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACzF,MAAM,GAAG,GAAI,UAAkB,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACd,GAAG,CAAC,MAAM,GAAG,eAAM,CAAC;YACxB,CAAC;QACL,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAClD,MAAM,CAAC,MAAM,GAAG,eAAM,CAAC;QAC3B,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,UAAU,EAAE,MAAa,EAAE;YAC3D,mBAAmB,EAAE,WAAW;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAE1C,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAS,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,KAAa;QAClD,OAAO,MAAM,yBAAc,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,UAAU,CAAC,SAAoB;QACxC,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAEjG,OAAO,MAAO,IAAI,CAAC,OAAO,CAAC,OAAe;aACrC,UAAU,CAAC,SAAS,CAAC;aACrB,QAAQ,CAAC;YACN,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;YAC1C,aAAa,EAAE,uBAAa,CAAC,SAAS;SACzC,CAAC;aACD,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB,CAAC,EAAO;QACnC,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE5H,OAAO,MAAO,IAAI,CAAC,OAAO,CAAC,OAAe;aACrC,kBAAkB,CAAC,EAAE,CAAC;aACtB,QAAQ,CAAC;YACN,aAAa,EAAE,WAAW;YAC1B,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;YAC1C,aAAa,EAAE,uBAAa,CAAC,SAAS;SACzC,CAAC;aACD,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB;QAC9B,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE9G,OAAO,MAAO,IAAI,CAAC,OAAO,CAAC,OAAe;aACrC,qBAAqB,EAAE;aACvB,QAAQ,CAAC;YACN,WAAW,EAAE,cAAc;YAC3B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;YAC1C,aAAa,EAAE,uBAAa,CAAC,SAAS;SACzC,CAAC;aACD,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB;QAC5B,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE7G,OAAO,MAAO,IAAI,CAAC,OAAO,CAAC,OAAe;aACrC,mBAAmB,EAAE;aACrB,QAAQ,CAAC;YACN,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;YAC1C,aAAa,EAAE,uBAAa,CAAC,SAAS;SACzC,CAAC;aACD,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,oBAAoB,CAAC,UAAkB,EAAE,MAAc;QAChE,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE7G,OAAO,MAAO,IAAI,CAAC,OAAO,CAAC,OAAe;aACrC,oBAAoB,CAAC,IAAI,WAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC;aAC3D,QAAQ,CAAC;YACN,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;SAC7C,CAAC;aACD,GAAG,EAAE,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE7G,OAAO,MAAO,IAAI,CAAC,OAAO,CAAC,OAAe;aACrC,oBAAoB,EAAE;aACtB,QAAQ,CAAC;YACN,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;SAC7C,CAAC;aACD,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB;QAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE7G,OAAO,MAAO,IAAI,CAAC,OAAO,CAAC,OAAe;aACrC,qBAAqB,EAAE;aACvB,QAAQ,CAAC;YACN,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;SAC7C,CAAC;aACD,GAAG,EAAE,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE7G,OAAO,MAAO,IAAI,CAAC,OAAO,CAAC,OAAe;aACrC,mBAAmB,EAAE;aACrB,QAAQ,CAAC;YACN,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;SAC7C,CAAC;aACD,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,kBAAkB,CAAC,SAAiB,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEzC,8CAA8C;QAC9C,MAAM,UAAU,GAAG,MAAM,yBAAc,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE7F,qDAAqD;QACrD,MAAM,aAAa,GAAG,MAAM,yBAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAE3E,MAAM,eAAe,GAAG;YACpB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC9B,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtC,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC5C,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC5C,CAAC;QAEF,OAAO,IAAA,mBAAO,EAAC,gCAAoB,EAAE,eAAe,EAAE;YAClD,MAAM,EAAE,sBAAU,CAAC,cAAc;YACjC,KAAK,EAAE,qBAAS,CAAC,OAAO;YACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK,EAAE,eAAe;SACzB,CAAC,CAAC,KAAK,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO,CAAC,aAAqB,EAAE,MAAc;QACtD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC9G,MAAM,UAAU,GAAG,eAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAErD,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE9G,OAAO,MAAO,IAAI,CAAC,OAAO,CAAC,OAAe;aACrC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,WAAE,CAAC,MAAM,CAAC,CAAC;aAC/C,QAAQ,CAAC;YACN,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,cAAc;YAC3B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;YAC1C,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,uBAAa,CAAC,SAAS;SACzC,CAAC;aACD,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAc,CAAC,eAAuB,EAAE,iBAAoC;QACrF,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,sBAAsB,eAAe,oBAAoB,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhF;;WAEG;QACH,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,WAAW,GAAG,wBAAa,CAAC,UAAU,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,eAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,eAAe,CAAC;QAE5B,IAAI,KAAK,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;QAEhC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,iBAAiB,EAAE,KAAK,EAAE,EAAE,CAAC;YACrD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,SAAS;YACb,CAAC;YAED,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC;gBACjG,MAAM,WAAW,GAAG,eAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACJ,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAE,CAAC;gBACtD,MAAM,QAAQ,GAAG,eAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAED,MAAM,cAAc,GAAa,EAAE,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC;gBAEvF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,KAAK,GAAG,cAAuB,CAAC;YAChC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,SAAS,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO;SACV,CAAC;QAEF,OAAO,IAAA,mBAAO,EAAC,6BAAiB,EAAE,SAAS,EAAE;YACzC,MAAM,EAAE,sBAAU,CAAC,cAAc;YACjC,KAAK,EAAE,qBAAS,CAAC,OAAO;YACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK,EAAE,eAAe;SACzB,CAAC,CAAC,KAAK,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,eAAe,CACxB,SAAiB,EACjB,YAAoB,EACpB,OAAe,EACf,MAAc,EACd,SAAoB,EACpB,OAAkB,EAClB,GAAW,EACX,UAAuB,EACvB,QAAgB,EAChB,QAAgB;QAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAEnC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;YACxC,OAAO;gBACH,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;gBACnG,aAAa,EAAE,EAAE;aACpB,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;QAC1C,MAAM,mBAAmB,GAAG,MAAM,yBAAc,CAAC,oBAAoB,CAAC,eAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QACxG,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;QAEpD;;WAEG;QACH,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAExC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAE7E,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAElF,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAC5D;YACI,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;YAC3B,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;YAC7C,aAAa,EAAE,YAAY,CAAC,QAAQ,EAAE;YACtC,cAAc,EAAE,aAAa,CAAC,QAAQ,EAAE;YACxC,WAAW,EAAE,UAAU,CAAC,QAAQ,EAAE;YAClC,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;YACpC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;YACzB,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;YAC/B,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;YACrC,YAAY,EAAE,kBAAkB;YAChC,WAAW,EAAE,UAAU,CAAC,OAAO;SAClC,EACD,QAAQ,EACR,QAAQ,CACX,CAAC;QAEF;;;WAGG;QACH,MAAM,QAAQ,GAAG,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAE1F,MAAM,QAAQ,GAAG,eAAM,CAAC,MAAM,CAAC;YAC3B,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;YAC3E,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;SAC9E,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAE1F,OAAO;YACH,KAAK,EAAE;gBACH,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;aACjC;YACD,aAAa;SAChB,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,QAAQ,CACjB,KAAU,EACV,OAAe,EACf,gBAAwB,EACxB,SAAoB,EACpB,OAAkB,EAClB,WAAmB,EACnB,cAAsB;QAEtB,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9G,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACvG,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7G,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE5H,MAAM,CAAC,YAAY,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CACnD,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,eAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,EAChE,IAAI,CAAC,YAAY,EAAE,CACtB,CAAC;QAEF,OAAO,MAAO,IAAI,CAAC,OAAO,CAAC,OAAe;aACrC,QAAQ,CACL,KAAK,EACL,KAAK,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EACvC,KAAK,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,EAChD,SAAS,EACT,OAAO,EACP,IAAI,WAAE,CAAC,WAAW,CAAC,EACnB,IAAI,WAAE,CAAC,cAAc,CAAC,CACzB;aACA,QAAQ,CAAC;YACN,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,QAAQ;YACf,SAAS;YACT,OAAO;YACP,sBAAsB,EAAE,WAAW;YACnC,aAAa,EAAE,WAAW;YAC1B,WAAW,EAAE,cAAc;YAC3B,gBAAgB,EAAE,YAAY;YAC9B,aAAa,EAAE,WAAW;YAC1B,aAAa,EAAE,uBAAa,CAAC,SAAS;SACzC,CAAC;aACD,GAAG,EAAE,CAAC;IACf,CAAC;CACJ;AAvcD,sCAucC"}
|
|
@@ -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
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
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;
|
|
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"}
|