solvoid 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +73 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +281 -0
- package/dist/client.js.map +1 -0
- package/dist/crypto/poseidon.d.ts +124 -0
- package/dist/crypto/poseidon.d.ts.map +1 -0
- package/dist/crypto/poseidon.js +293 -0
- package/dist/crypto/poseidon.js.map +1 -0
- package/dist/events/bus.d.ts +44 -0
- package/dist/events/bus.d.ts.map +1 -0
- package/dist/events/bus.js +83 -0
- package/dist/events/bus.js.map +1 -0
- package/dist/{sdk/index.d.ts → index.d.ts} +2 -3
- package/dist/index.d.ts.map +1 -0
- package/dist/{sdk/index.js → index.js} +21 -11
- package/dist/index.js.map +1 -0
- package/dist/integrity.d.ts +371 -0
- package/dist/integrity.d.ts.map +1 -0
- package/dist/integrity.js +260 -0
- package/dist/integrity.js.map +1 -0
- package/dist/network/shadow-rpc.d.ts +36 -0
- package/dist/network/shadow-rpc.d.ts.map +1 -0
- package/dist/network/shadow-rpc.js +163 -0
- package/dist/network/shadow-rpc.js.map +1 -0
- package/dist/{sdk/passport → passport}/manager.d.ts +9 -18
- package/dist/passport/manager.d.ts.map +1 -0
- package/dist/passport/manager.js +148 -0
- package/dist/passport/manager.js.map +1 -0
- package/dist/pipeline.d.ts +25 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +127 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/privacy/relayer.d.ts.map +1 -0
- package/dist/privacy/relayer.js.map +1 -0
- package/dist/privacy/shield.d.ts +27 -0
- package/dist/privacy/shield.d.ts.map +1 -0
- package/dist/privacy/shield.js +289 -0
- package/dist/privacy/shield.js.map +1 -0
- package/dist/{sdk/privacy-engine.d.ts → privacy-engine.d.ts} +2 -1
- package/dist/privacy-engine.d.ts.map +1 -0
- package/dist/{sdk/privacy-engine.js → privacy-engine.js} +24 -15
- package/dist/privacy-engine.js.map +1 -0
- package/dist/registry/idl-fetcher.d.ts +10 -0
- package/dist/registry/idl-fetcher.d.ts.map +1 -0
- package/dist/{sdk/registry → registry}/idl-fetcher.js +19 -16
- package/dist/registry/idl-fetcher.js.map +1 -0
- package/dist/registry/programs.d.ts.map +1 -0
- package/dist/registry/programs.js.map +1 -0
- package/dist/rescue/analyzer.d.ts +20 -0
- package/dist/rescue/analyzer.d.ts.map +1 -0
- package/dist/rescue/analyzer.js +137 -0
- package/dist/rescue/analyzer.js.map +1 -0
- package/dist/rescue/builder.d.ts +23 -0
- package/dist/rescue/builder.d.ts.map +1 -0
- package/dist/rescue/builder.js +164 -0
- package/dist/rescue/builder.js.map +1 -0
- package/dist/security/key-rotation.d.ts +153 -0
- package/dist/security/key-rotation.d.ts.map +1 -0
- package/dist/security/key-rotation.js +354 -0
- package/dist/security/key-rotation.js.map +1 -0
- package/dist/{sdk/semantics → semantics}/analyzer.d.ts.map +1 -1
- package/dist/{sdk/semantics → semantics}/analyzer.js.map +1 -1
- package/dist/semantics/decoder.d.ts.map +1 -0
- package/dist/semantics/decoder.js.map +1 -0
- package/dist/{sdk/semantics → semantics}/graph.d.ts.map +1 -1
- package/dist/{sdk/semantics → semantics}/graph.js.map +1 -1
- package/dist/semantics/idl-registry.d.ts +8 -0
- package/dist/semantics/idl-registry.d.ts.map +1 -0
- package/dist/{sdk/semantics → semantics}/idl-registry.js +23 -7
- package/dist/semantics/idl-registry.js.map +1 -0
- package/dist/semantics/types.d.ts +10 -0
- package/dist/semantics/types.d.ts.map +1 -0
- package/dist/{sdk → semantics}/types.js.map +1 -1
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/address.d.ts +10 -0
- package/dist/utils/address.d.ts.map +1 -0
- package/dist/utils/address.js +45 -0
- package/dist/utils/address.js.map +1 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +38 -76
- package/LICENSE +0 -21
- package/README.md +0 -123
- package/SECURITY.md +0 -174
- package/bin/solvoid-scan +0 -2
- package/dist/cli/privacy-scan.d.ts +0 -11
- package/dist/cli/privacy-scan.d.ts.map +0 -1
- package/dist/cli/privacy-scan.js +0 -112
- package/dist/cli/privacy-scan.js.map +0 -1
- package/dist/cli/solvoid-scan.d.ts +0 -13
- package/dist/cli/solvoid-scan.d.ts.map +0 -1
- package/dist/cli/solvoid-scan.js +0 -174
- package/dist/cli/solvoid-scan.js.map +0 -1
- package/dist/cli/test-forensics.d.ts +0 -2
- package/dist/cli/test-forensics.d.ts.map +0 -1
- package/dist/cli/test-forensics.js +0 -90
- package/dist/cli/test-forensics.js.map +0 -1
- package/dist/cli/test-scenarios.d.ts +0 -2
- package/dist/cli/test-scenarios.d.ts.map +0 -1
- package/dist/cli/test-scenarios.js +0 -96
- package/dist/cli/test-scenarios.js.map +0 -1
- package/dist/examples/enterprise-demo.js +0 -65
- package/dist/sdk/client.d.ts +0 -77
- package/dist/sdk/client.d.ts.map +0 -1
- package/dist/sdk/client.js +0 -180
- package/dist/sdk/client.js.map +0 -1
- package/dist/sdk/compliance/identity.d.ts +0 -34
- package/dist/sdk/compliance/identity.d.ts.map +0 -1
- package/dist/sdk/compliance/identity.js +0 -55
- package/dist/sdk/compliance/identity.js.map +0 -1
- package/dist/sdk/compliance/threat-model.d.ts +0 -14
- package/dist/sdk/compliance/threat-model.d.ts.map +0 -1
- package/dist/sdk/compliance/threat-model.js +0 -101
- package/dist/sdk/compliance/threat-model.js.map +0 -1
- package/dist/sdk/forensics/mev.js +0 -50
- package/dist/sdk/forensics/order-flow.d.ts +0 -20
- package/dist/sdk/forensics/order-flow.d.ts.map +0 -1
- package/dist/sdk/forensics/order-flow.js +0 -104
- package/dist/sdk/forensics/order-flow.js.map +0 -1
- package/dist/sdk/forensics/simulation.d.ts +0 -14
- package/dist/sdk/forensics/simulation.d.ts.map +0 -1
- package/dist/sdk/forensics/simulation.js +0 -45
- package/dist/sdk/forensics/simulation.js.map +0 -1
- package/dist/sdk/index.d.ts.map +0 -1
- package/dist/sdk/index.js.map +0 -1
- package/dist/sdk/network/shadow-rpc.d.ts +0 -18
- package/dist/sdk/network/shadow-rpc.d.ts.map +0 -1
- package/dist/sdk/network/shadow-rpc.js +0 -32
- package/dist/sdk/network/shadow-rpc.js.map +0 -1
- package/dist/sdk/obfuscator.d.ts +0 -36
- package/dist/sdk/obfuscator.d.ts.map +0 -1
- package/dist/sdk/obfuscator.js +0 -77
- package/dist/sdk/obfuscator.js.map +0 -1
- package/dist/sdk/passport/manager.d.ts.map +0 -1
- package/dist/sdk/passport/manager.js +0 -107
- package/dist/sdk/passport/manager.js.map +0 -1
- package/dist/sdk/pipeline.d.ts +0 -34
- package/dist/sdk/pipeline.d.ts.map +0 -1
- package/dist/sdk/pipeline.js +0 -81
- package/dist/sdk/pipeline.js.map +0 -1
- package/dist/sdk/privacy/confidential-transfer.d.ts +0 -81
- package/dist/sdk/privacy/confidential-transfer.d.ts.map +0 -1
- package/dist/sdk/privacy/confidential-transfer.js +0 -158
- package/dist/sdk/privacy/confidential-transfer.js.map +0 -1
- package/dist/sdk/privacy/history.d.ts +0 -11
- package/dist/sdk/privacy/history.d.ts.map +0 -1
- package/dist/sdk/privacy/history.js +0 -110
- package/dist/sdk/privacy/history.js.map +0 -1
- package/dist/sdk/privacy/light-protocol.d.ts +0 -42
- package/dist/sdk/privacy/light-protocol.d.ts.map +0 -1
- package/dist/sdk/privacy/light-protocol.js +0 -83
- package/dist/sdk/privacy/light-protocol.js.map +0 -1
- package/dist/sdk/privacy/relayer.d.ts.map +0 -1
- package/dist/sdk/privacy/relayer.js.map +0 -1
- package/dist/sdk/privacy/safe-obfuscator.d.ts +0 -38
- package/dist/sdk/privacy/safe-obfuscator.d.ts.map +0 -1
- package/dist/sdk/privacy/safe-obfuscator.js +0 -101
- package/dist/sdk/privacy/safe-obfuscator.js.map +0 -1
- package/dist/sdk/privacy/shield.d.ts +0 -34
- package/dist/sdk/privacy/shield.d.ts.map +0 -1
- package/dist/sdk/privacy/shield.js +0 -174
- package/dist/sdk/privacy/shield.js.map +0 -1
- package/dist/sdk/privacy/zk.js +0 -43
- package/dist/sdk/privacy-engine.d.ts.map +0 -1
- package/dist/sdk/privacy-engine.js.map +0 -1
- package/dist/sdk/registry/idl-fetcher.d.ts +0 -17
- package/dist/sdk/registry/idl-fetcher.d.ts.map +0 -1
- package/dist/sdk/registry/idl-fetcher.js.map +0 -1
- package/dist/sdk/registry/programs.d.ts.map +0 -1
- package/dist/sdk/registry/programs.js.map +0 -1
- package/dist/sdk/rescue/analyzer.d.ts +0 -22
- package/dist/sdk/rescue/analyzer.d.ts.map +0 -1
- package/dist/sdk/rescue/analyzer.js +0 -46
- package/dist/sdk/rescue/analyzer.js.map +0 -1
- package/dist/sdk/rescue/builder.d.ts +0 -16
- package/dist/sdk/rescue/builder.d.ts.map +0 -1
- package/dist/sdk/rescue/builder.js +0 -33
- package/dist/sdk/rescue/builder.js.map +0 -1
- package/dist/sdk/semantics/decoder.d.ts.map +0 -1
- package/dist/sdk/semantics/decoder.js.map +0 -1
- package/dist/sdk/semantics/idl-registry.d.ts +0 -7
- package/dist/sdk/semantics/idl-registry.d.ts.map +0 -1
- package/dist/sdk/semantics/idl-registry.js.map +0 -1
- package/dist/sdk/semantics/types.d.ts +0 -44
- package/dist/sdk/semantics/types.d.ts.map +0 -1
- package/dist/sdk/semantics/types.js.map +0 -1
- package/dist/sdk/simulator.d.ts +0 -15
- package/dist/sdk/simulator.d.ts.map +0 -1
- package/dist/sdk/simulator.js +0 -133
- package/dist/sdk/simulator.js.map +0 -1
- package/dist/sdk/types.d.ts +0 -53
- package/dist/sdk/types.d.ts.map +0 -1
- package/dist/sdk/utils/config.d.ts.map +0 -1
- package/dist/sdk/utils/config.js.map +0 -1
- package/dist/sdk/utils/logger.d.ts.map +0 -1
- package/dist/sdk/utils/logger.js.map +0 -1
- package/dist/tests/unit/idl-registry.test.d.ts +0 -2
- package/dist/tests/unit/idl-registry.test.d.ts.map +0 -1
- package/dist/tests/unit/idl-registry.test.js +0 -35
- package/dist/tests/unit/idl-registry.test.js.map +0 -1
- package/dist/tools/exploit_demonstration.js +0 -99
- package/dist/tools/gen-tx.js +0 -29
- package/dist/tools/get-recent-tx.js +0 -18
- /package/dist/{sdk/privacy → privacy}/relayer.d.ts +0 -0
- /package/dist/{sdk/privacy → privacy}/relayer.js +0 -0
- /package/dist/{sdk/registry → registry}/programs.d.ts +0 -0
- /package/dist/{sdk/registry → registry}/programs.js +0 -0
- /package/dist/{sdk/semantics → semantics}/analyzer.d.ts +0 -0
- /package/dist/{sdk/semantics → semantics}/analyzer.js +0 -0
- /package/dist/{sdk/semantics → semantics}/decoder.d.ts +0 -0
- /package/dist/{sdk/semantics → semantics}/decoder.js +0 -0
- /package/dist/{sdk/semantics → semantics}/graph.d.ts +0 -0
- /package/dist/{sdk/semantics → semantics}/graph.js +0 -0
- /package/dist/{sdk/semantics → semantics}/types.js +0 -0
- /package/dist/{sdk/types.js → types.js} +0 -0
- /package/dist/{sdk/utils → utils}/config.d.ts +0 -0
- /package/dist/{sdk/utils → utils}/config.js +0 -0
- /package/dist/{sdk/utils → utils}/logger.d.ts +0 -0
- /package/dist/{sdk/utils → utils}/logger.js +0 -0
package/dist/sdk/client.js
DELETED
|
@@ -1,180 +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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.SolVoidClient = void 0;
|
|
40
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
41
|
-
const shield_1 = require("./privacy/shield");
|
|
42
|
-
const pipeline_1 = require("./pipeline");
|
|
43
|
-
const analyzer_1 = require("./rescue/analyzer");
|
|
44
|
-
const builder_1 = require("./rescue/builder");
|
|
45
|
-
const manager_1 = require("./passport/manager");
|
|
46
|
-
const shadow_rpc_1 = require("./network/shadow-rpc");
|
|
47
|
-
const crypto = __importStar(require("crypto"));
|
|
48
|
-
const winston_1 = __importDefault(require("winston"));
|
|
49
|
-
/**
|
|
50
|
-
* SolVoidClient
|
|
51
|
-
* High-level orchestration for scanning, shielding, and ZK-withdrawals.
|
|
52
|
-
*/
|
|
53
|
-
class SolVoidClient {
|
|
54
|
-
constructor(config, wallet) {
|
|
55
|
-
this.config = config;
|
|
56
|
-
this.connection = new web3_js_1.Connection(config.rpcUrl, 'confirmed');
|
|
57
|
-
this.passport = new manager_1.PassportManager();
|
|
58
|
-
const logger = winston_1.default.createLogger({
|
|
59
|
-
level: 'info',
|
|
60
|
-
transports: [new winston_1.default.transports.Console()]
|
|
61
|
-
});
|
|
62
|
-
this.shadow = new shadow_rpc_1.ShadowRPC(this.connection, logger);
|
|
63
|
-
const idl = {
|
|
64
|
-
version: "0.1.0",
|
|
65
|
-
name: "solvoid",
|
|
66
|
-
instructions: [
|
|
67
|
-
{ name: "initialize", accounts: [{ name: "state", isMut: true, isSigner: false }, { name: "admin", isMut: true, isSigner: true }, { name: "systemProgram", isMut: false, isSigner: false }], args: [{ name: "amount", type: "u64" }] },
|
|
68
|
-
{ name: "deposit", accounts: [{ name: "state", isMut: true, isSigner: false }, { name: "depositor", isMut: true, isSigner: true }, { name: "vault", isMut: true, isSigner: false }, { name: "systemProgram", isMut: false, isSigner: false }], args: [{ name: "commitment", type: { array: ["u8", 32] } }] },
|
|
69
|
-
{ name: "withdraw", accounts: [{ name: "state", isMut: true, isSigner: false }, { name: "vault", isMut: true, isSigner: false }, { name: "recipient", isMut: true, isSigner: false }, { name: "nullifierRecord", isMut: true, isSigner: false }, { name: "relayer", isMut: true, isSigner: true }, { name: "systemProgram", isMut: false, isSigner: false }], args: [{ name: "nullifierHash", type: { array: ["u8", 32] } }, { name: "root", type: { array: ["u8", 32] } }, { name: "proof", type: "bytes" }, { name: "fee", type: "u64" }] }
|
|
70
|
-
],
|
|
71
|
-
address: config.programId
|
|
72
|
-
};
|
|
73
|
-
this.protocolShield = new shield_1.PrivacyShield(this.connection, config.programId, idl, wallet);
|
|
74
|
-
this.pipeline = new pipeline_1.PrivacyPipeline(this.connection, this.protocolShield);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Scans an address for privacy leaks and prepares remediation shielding.
|
|
78
|
-
*/
|
|
79
|
-
async protect(address) {
|
|
80
|
-
if (this.config.mock) {
|
|
81
|
-
const mockResult = [{
|
|
82
|
-
signature: '5Qw...zX9',
|
|
83
|
-
privacyScore: 42,
|
|
84
|
-
leaks: [
|
|
85
|
-
{
|
|
86
|
-
type: 'identity',
|
|
87
|
-
scope: 'funding',
|
|
88
|
-
visibility: 'PUBLIC',
|
|
89
|
-
severity: 'CRITICAL',
|
|
90
|
-
description: 'Identity linked to Binance via Jupiter swap.'
|
|
91
|
-
}
|
|
92
|
-
]
|
|
93
|
-
}];
|
|
94
|
-
this.passport.updateScore(address.toBase58(), 42);
|
|
95
|
-
return mockResult;
|
|
96
|
-
}
|
|
97
|
-
const results = await this.pipeline.processAddress(address);
|
|
98
|
-
// Update passport score automatically
|
|
99
|
-
if (results.length > 0) {
|
|
100
|
-
const avgScore = results.reduce((acc, r) => acc + r.privacyScore, 0) / results.length;
|
|
101
|
-
this.passport.updateScore(address.toBase58(), avgScore);
|
|
102
|
-
}
|
|
103
|
-
return results;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Retrieve local scoring history and earned badges for a wallet.
|
|
107
|
-
*/
|
|
108
|
-
async getPassport(address) {
|
|
109
|
-
return this.passport.getPassport(address);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Automatic scan and atomic shield for all tainted assets.
|
|
113
|
-
*/
|
|
114
|
-
async rescue(address) {
|
|
115
|
-
if (this.config.mock) {
|
|
116
|
-
return {
|
|
117
|
-
status: 'success',
|
|
118
|
-
txid: '5eYk...zVq',
|
|
119
|
-
leakedAssets: [{ mint: 'So111...112', amount: 1000000000 }],
|
|
120
|
-
oldScore: 42,
|
|
121
|
-
newScore: 95
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
// 1. Scan for leaks
|
|
125
|
-
const results = await this.protect(address);
|
|
126
|
-
const allLeaks = results.flatMap((r) => r.leaks);
|
|
127
|
-
// 2. Identify Leaked Assets
|
|
128
|
-
const leakedAssets = analyzer_1.RescueAnalyzer.identifyLeakedAssets(allLeaks);
|
|
129
|
-
if (leakedAssets.length === 0)
|
|
130
|
-
return { status: 'secure', message: 'No leaked assets found.' };
|
|
131
|
-
// 3. Build Atomic Rescue Transaction
|
|
132
|
-
const builder = new builder_1.RescueBuilder(this.connection, this.protocolShield);
|
|
133
|
-
const rescueTx = await builder.buildAtomicRescueTx(address, leakedAssets);
|
|
134
|
-
// Broadcast via the relay network to hide IP
|
|
135
|
-
const txid = await this.shadow.broadcastPrivately(rescueTx, { hops: 3, stealthMode: true });
|
|
136
|
-
return {
|
|
137
|
-
status: 'success',
|
|
138
|
-
txid,
|
|
139
|
-
leakedAssets,
|
|
140
|
-
oldScore: results.length > 0 ? results[0].privacyScore : 100,
|
|
141
|
-
newScore: 95
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Directly shields an amount of SOL.
|
|
146
|
-
*/
|
|
147
|
-
async shield(_amount) {
|
|
148
|
-
const commitmentData = this.protocolShield.generateCommitment();
|
|
149
|
-
if (this.config.mock) {
|
|
150
|
-
return { txid: '4RzV...aB2', commitmentData };
|
|
151
|
-
}
|
|
152
|
-
const txid = await this.protocolShield.deposit(commitmentData.commitment);
|
|
153
|
-
return { txid, commitmentData };
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* End-to-end withdrawal: Merkle proof -> ZK-proof -> On-chain broadcast.
|
|
157
|
-
*/
|
|
158
|
-
async withdraw(secretHex, nullifierHex, recipient, allCommitments, wasmPath, zkeyPath, relayerSigner, fee = 0) {
|
|
159
|
-
if (this.config.mock) {
|
|
160
|
-
return { status: 'success', signature: '3mKj...nP5' };
|
|
161
|
-
}
|
|
162
|
-
const secret = Buffer.from(secretHex, 'hex');
|
|
163
|
-
const nullifier = Buffer.from(nullifierHex, 'hex');
|
|
164
|
-
// Generate proof of membership in the commitment pool
|
|
165
|
-
const commitment = crypto.createHash('sha256').update(Buffer.concat([secret, nullifier])).digest();
|
|
166
|
-
const index = allCommitments.findIndex(c => c.equals(commitment));
|
|
167
|
-
if (index === -1)
|
|
168
|
-
throw new Error("Commitment not found in state");
|
|
169
|
-
const merklePath = await this.protocolShield.getMerkleProof(index, allCommitments);
|
|
170
|
-
// Final root used for ZK verification
|
|
171
|
-
const root = Buffer.alloc(32); // Placeholder for root calculation logic
|
|
172
|
-
// 3. Generate ZK-Proof
|
|
173
|
-
const { proof } = await this.protocolShield.generateZKProof(secret, nullifier, root, merklePath, wasmPath, zkeyPath);
|
|
174
|
-
// 4. Submit to blockchain (or relayer)
|
|
175
|
-
const nullifierHash = crypto.createHash('sha256').update(nullifier).digest();
|
|
176
|
-
return await this.protocolShield.withdraw(nullifierHash, root, [proof], recipient, relayerSigner, fee);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
exports.SolVoidClient = SolVoidClient;
|
|
180
|
-
//# sourceMappingURL=client.js.map
|
package/dist/sdk/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../sdk/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { TransactionJSON, Leak } from '../types';
|
|
2
|
-
export declare class IdentityComplianceConfig {
|
|
3
|
-
requireCivicPass: boolean;
|
|
4
|
-
allowedCountries: string[];
|
|
5
|
-
constructor(requireCivicPass?: boolean, allowedCountries?: string[]);
|
|
6
|
-
}
|
|
7
|
-
export declare class IdentityManager {
|
|
8
|
-
/**
|
|
9
|
-
* Checks if a transaction interacts with regulated protocols.
|
|
10
|
-
*
|
|
11
|
-
* @todo INTEGRATION REQUIRED: This method is a stub.
|
|
12
|
-
* Real implementation requires integration with:
|
|
13
|
-
* 1. Civic Gateway (Identity/KYC checks)
|
|
14
|
-
* 2. TRM Labs / Chainalysis (Sanctions Screening)
|
|
15
|
-
* 3. On-chain Allowlist Providers
|
|
16
|
-
*/
|
|
17
|
-
checkCompliance(_tx: TransactionJSON, _config: IdentityComplianceConfig): Promise<Leak[]>;
|
|
18
|
-
/**
|
|
19
|
-
* Returns a list of integrations required to enable full compliance mode.
|
|
20
|
-
*/
|
|
21
|
-
getRequiredIntegrations(): string[];
|
|
22
|
-
/**
|
|
23
|
-
* Generates a "Selective Disclosure" proof.
|
|
24
|
-
* @deprecated Stub implementation. Use @civic/solana-gateway-react for real proofs.
|
|
25
|
-
*/
|
|
26
|
-
generateDisclosure(_credentialType: string): {
|
|
27
|
-
proof: string;
|
|
28
|
-
claim: string;
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
export declare class MultisigMonitor {
|
|
32
|
-
analyzeMultisigPrivacy(_multisigAddress: string): Promise<Leak[]>;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../sdk/compliance/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEjD,qBAAa,wBAAwB;IAEtB,gBAAgB,EAAE,OAAO;IACzB,gBAAgB,EAAE,MAAM,EAAE;gBAD1B,gBAAgB,GAAE,OAAe,EACjC,gBAAgB,GAAE,MAAM,EAAO;CAE7C;AAED,qBAAa,eAAe;IAExB;;;;;;;;OAQG;IACU,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAStG;;OAEG;IACI,uBAAuB,IAAI,MAAM,EAAE;IAQ1C;;;OAGG;IACI,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAMvF;AAED,qBAAa,eAAe;IACX,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAGjF"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MultisigMonitor = exports.IdentityManager = exports.IdentityComplianceConfig = void 0;
|
|
4
|
-
class IdentityComplianceConfig {
|
|
5
|
-
constructor(requireCivicPass = false, allowedCountries = []) {
|
|
6
|
-
this.requireCivicPass = requireCivicPass;
|
|
7
|
-
this.allowedCountries = allowedCountries;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.IdentityComplianceConfig = IdentityComplianceConfig;
|
|
11
|
-
class IdentityManager {
|
|
12
|
-
/**
|
|
13
|
-
* Checks if a transaction interacts with regulated protocols.
|
|
14
|
-
*
|
|
15
|
-
* @todo INTEGRATION REQUIRED: This method is a stub.
|
|
16
|
-
* Real implementation requires integration with:
|
|
17
|
-
* 1. Civic Gateway (Identity/KYC checks)
|
|
18
|
-
* 2. TRM Labs / Chainalysis (Sanctions Screening)
|
|
19
|
-
* 3. On-chain Allowlist Providers
|
|
20
|
-
*/
|
|
21
|
-
async checkCompliance(_tx, _config) {
|
|
22
|
-
const leaks = [];
|
|
23
|
-
// Example logic for "Mock" compliance violation
|
|
24
|
-
// In production, fetch sanctions list here.
|
|
25
|
-
return leaks;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Returns a list of integrations required to enable full compliance mode.
|
|
29
|
-
*/
|
|
30
|
-
getRequiredIntegrations() {
|
|
31
|
-
return [
|
|
32
|
-
"Civic Pass Gateway IDL",
|
|
33
|
-
"TRM Labs API Key",
|
|
34
|
-
"Chainalysis Risk API"
|
|
35
|
-
];
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Generates a "Selective Disclosure" proof.
|
|
39
|
-
* @deprecated Stub implementation. Use @civic/solana-gateway-react for real proofs.
|
|
40
|
-
*/
|
|
41
|
-
generateDisclosure(_credentialType) {
|
|
42
|
-
return {
|
|
43
|
-
proof: "integration_required",
|
|
44
|
-
claim: "Identity integration pending"
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
exports.IdentityManager = IdentityManager;
|
|
49
|
-
class MultisigMonitor {
|
|
50
|
-
async analyzeMultisigPrivacy(_multisigAddress) {
|
|
51
|
-
return [];
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
exports.MultisigMonitor = MultisigMonitor;
|
|
55
|
-
//# sourceMappingURL=identity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../sdk/compliance/identity.ts"],"names":[],"mappings":";;;AAEA,MAAa,wBAAwB;IACjC,YACW,mBAA4B,KAAK,EACjC,mBAA6B,EAAE;QAD/B,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,qBAAgB,GAAhB,gBAAgB,CAAe;IACtC,CAAC;CACR;AALD,4DAKC;AAED,MAAa,eAAe;IAExB;;;;;;;;OAQG;IACI,KAAK,CAAC,eAAe,CAAC,GAAoB,EAAE,OAAiC;QAChF,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,gDAAgD;QAChD,4CAA4C;QAE5C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,uBAAuB;QAC1B,OAAO;YACH,wBAAwB;YACxB,kBAAkB;YAClB,sBAAsB;SACzB,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAAC,eAAuB;QAC7C,OAAO;YACH,KAAK,EAAE,sBAAsB;YAC7B,KAAK,EAAE,8BAA8B;SACxC,CAAC;IACN,CAAC;CACJ;AAzCD,0CAyCC;AAED,MAAa,eAAe;IACjB,KAAK,CAAC,sBAAsB,CAAC,gBAAwB;QACxD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAJD,0CAIC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Leak, LeakType } from '../types';
|
|
2
|
-
export interface ThreatProfile {
|
|
3
|
-
name: string;
|
|
4
|
-
description: string;
|
|
5
|
-
prioritizedActors: string[];
|
|
6
|
-
weights: Record<LeakType, number>;
|
|
7
|
-
}
|
|
8
|
-
export declare class ThreatModelRegistry {
|
|
9
|
-
private defaultProfile;
|
|
10
|
-
private profiles;
|
|
11
|
-
getProfile(id: string): ThreatProfile;
|
|
12
|
-
calculateWeightedScore(leaks: Leak[], profileId?: string): number;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=threat-model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"threat-model.d.ts","sourceRoot":"","sources":["../../../sdk/compliance/threat-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,cAAc,CAcpB;IAEF,OAAO,CAAC,QAAQ,CA8Cd;IAEK,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa;IAIrC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,GAAE,MAAmB,GAAG,MAAM;CAqBvF"}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ThreatModelRegistry = void 0;
|
|
4
|
-
class ThreatModelRegistry {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.defaultProfile = {
|
|
7
|
-
name: "Standard",
|
|
8
|
-
description: "Balanced protection against all actor types.",
|
|
9
|
-
prioritizedActors: ["analyst", "validator"],
|
|
10
|
-
weights: {
|
|
11
|
-
"identity": 1.0,
|
|
12
|
-
"metadata": 1.0,
|
|
13
|
-
"static-dependency": 1.0,
|
|
14
|
-
"state-leak": 1.0,
|
|
15
|
-
"order-flow-exposure": 1.0,
|
|
16
|
-
"cpi-linkage": 1.0,
|
|
17
|
-
"governance-leak": 1.0,
|
|
18
|
-
"log-trace": 1.0
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
this.profiles = {
|
|
22
|
-
"counterparty-evasion": {
|
|
23
|
-
name: "Counterparty Evasion",
|
|
24
|
-
description: "Prioritizes hiding intent/metadata from trading counterparties.",
|
|
25
|
-
prioritizedActors: ["counterparty", "analyst"],
|
|
26
|
-
weights: {
|
|
27
|
-
"identity": 0.8,
|
|
28
|
-
"metadata": 2.5,
|
|
29
|
-
"static-dependency": 0.5,
|
|
30
|
-
"state-leak": 1.0,
|
|
31
|
-
"order-flow-exposure": 2.0,
|
|
32
|
-
"cpi-linkage": 1.0,
|
|
33
|
-
"governance-leak": 1.0,
|
|
34
|
-
"log-trace": 1.5
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"mev-protection": {
|
|
38
|
-
name: "MEV / Sandwich Protection",
|
|
39
|
-
description: "Strict checks against searcher exploitation.",
|
|
40
|
-
prioritizedActors: ["validator", "bot"],
|
|
41
|
-
weights: {
|
|
42
|
-
"identity": 0.5,
|
|
43
|
-
"metadata": 1.5,
|
|
44
|
-
"static-dependency": 0.5,
|
|
45
|
-
"state-leak": 0.5,
|
|
46
|
-
"order-flow-exposure": 4.0,
|
|
47
|
-
"cpi-linkage": 1.0,
|
|
48
|
-
"governance-leak": 0.5,
|
|
49
|
-
"log-trace": 1.0
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"regulatory-compliance": {
|
|
53
|
-
name: "Regulatory Compliance",
|
|
54
|
-
description: "Ensures no PII is permanently written to state (GDPR/CCPA Focus).",
|
|
55
|
-
prioritizedActors: ["regulator", "analyst"],
|
|
56
|
-
weights: {
|
|
57
|
-
"identity": 2.0,
|
|
58
|
-
"state-leak": 3.0,
|
|
59
|
-
"metadata": 1.0,
|
|
60
|
-
"static-dependency": 1.0,
|
|
61
|
-
"order-flow-exposure": 0.5,
|
|
62
|
-
"cpi-linkage": 1.5,
|
|
63
|
-
"governance-leak": 1.5,
|
|
64
|
-
"log-trace": 2.0
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
getProfile(id) {
|
|
70
|
-
return this.profiles[id] || this.defaultProfile;
|
|
71
|
-
}
|
|
72
|
-
calculateWeightedScore(leaks, profileId = "standard") {
|
|
73
|
-
const profile = this.getProfile(profileId);
|
|
74
|
-
const baseScore = 100;
|
|
75
|
-
let totalPenalty = 0;
|
|
76
|
-
leaks.forEach(leak => {
|
|
77
|
-
const weight = profile.weights[leak.type] || 1.0;
|
|
78
|
-
let severityScore = 0;
|
|
79
|
-
switch (leak.severity) {
|
|
80
|
-
case 'CRITICAL':
|
|
81
|
-
severityScore = 20;
|
|
82
|
-
break;
|
|
83
|
-
case 'HIGH':
|
|
84
|
-
severityScore = 10;
|
|
85
|
-
break;
|
|
86
|
-
case 'MEDIUM':
|
|
87
|
-
severityScore = 5;
|
|
88
|
-
break;
|
|
89
|
-
case 'LOW':
|
|
90
|
-
severityScore = 2;
|
|
91
|
-
break;
|
|
92
|
-
default: severityScore = 5;
|
|
93
|
-
}
|
|
94
|
-
totalPenalty += (severityScore * weight);
|
|
95
|
-
});
|
|
96
|
-
totalPenalty = Math.min(totalPenalty, 100);
|
|
97
|
-
return Math.max(0, parseFloat((baseScore - totalPenalty).toFixed(1)));
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
exports.ThreatModelRegistry = ThreatModelRegistry;
|
|
101
|
-
//# sourceMappingURL=threat-model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"threat-model.js","sourceRoot":"","sources":["../../../sdk/compliance/threat-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MevForensicsEngine = void 0;
|
|
4
|
-
class MevForensicsEngine {
|
|
5
|
-
constructor(rpcUrl, jitoAuthToken) {
|
|
6
|
-
this.rpcUrl = rpcUrl;
|
|
7
|
-
this.jitoAuthToken = jitoAuthToken;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Simulations a transaction within a Jito Bundle context to detect
|
|
11
|
-
* sandwich attacks or front-running vulnerabilities.
|
|
12
|
-
*/
|
|
13
|
-
async simulateBundle(tx) {
|
|
14
|
-
const leaks = [];
|
|
15
|
-
// 1. Convert TransactionJSON to VersionedTransaction (mock logic)
|
|
16
|
-
// const vTx = deserialize(tx);
|
|
17
|
-
// 2. Simulate via Jito Block Engine
|
|
18
|
-
try {
|
|
19
|
-
// const result = await this.jitoClient.simulateBundle(bundle);
|
|
20
|
-
// Analyze result.preExecution vs result.postExecution
|
|
21
|
-
}
|
|
22
|
-
catch (e) {
|
|
23
|
-
console.warn("Jito simulation failed, skipping check", e);
|
|
24
|
-
}
|
|
25
|
-
// Logic: If price impact > X% and mempool delay > Y ms -> Flag LEAK
|
|
26
|
-
// heuristics for now:
|
|
27
|
-
const isSwap = tx.message.instructions.some(ix =>
|
|
28
|
-
// Mock check for Raydium/Orca program IDs
|
|
29
|
-
ix.programIdIndex === 4 // hypothetical
|
|
30
|
-
);
|
|
31
|
-
if (isSwap) {
|
|
32
|
-
leaks.push({
|
|
33
|
-
type: "mev-vulnerability",
|
|
34
|
-
scope: "transaction",
|
|
35
|
-
description: "Transaction structure allows for sandwich attacks (Found SWAP without bundle protection).",
|
|
36
|
-
remediation: "Submit via Jito Bundle or private RPC.",
|
|
37
|
-
severity: "HIGH"
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return leaks;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Checks if user is using optimal tips to guarantee inclusion without public broadcasting
|
|
44
|
-
*/
|
|
45
|
-
checkTipOptimizations(tx) {
|
|
46
|
-
// Scan for Jito Tip Account transfer
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.MevForensicsEngine = MevForensicsEngine;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { TransactionJSON, Leak } from '../types';
|
|
2
|
-
export declare class OrderFlowAnalyzer {
|
|
3
|
-
private rpcUrl;
|
|
4
|
-
private jitoAuthToken?;
|
|
5
|
-
private static JITO_API_URL;
|
|
6
|
-
constructor(rpcUrl: string, jitoAuthToken?: string);
|
|
7
|
-
/**
|
|
8
|
-
* Analyzes transaction for Order Flow vulnerabilities.
|
|
9
|
-
*/
|
|
10
|
-
analyze(tx: TransactionJSON): Promise<Leak[]>;
|
|
11
|
-
/**
|
|
12
|
-
* Queries Jito API to verify if the transaction was part of a bundle.
|
|
13
|
-
* Uses Real API logic with Authentication if provided.
|
|
14
|
-
*/
|
|
15
|
-
checkIfBundled(signature: string): Promise<boolean>;
|
|
16
|
-
private checkTipAccounts;
|
|
17
|
-
getRpcUrl(): string;
|
|
18
|
-
hasJitoAuth(): boolean;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=order-flow.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"order-flow.d.ts","sourceRoot":"","sources":["../../../sdk/forensics/order-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAMjD,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B,OAAO,CAAC,MAAM,CAAC,YAAY,CAA0D;gBAEzE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAKlD;;OAEG;IACU,OAAO,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAkC1D;;;OAGG;IACU,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0ChE,OAAO,CAAC,gBAAgB;IAOjB,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,OAAO;CAGhC"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.OrderFlowAnalyzer = void 0;
|
|
7
|
-
const programs_1 = require("../registry/programs");
|
|
8
|
-
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
9
|
-
const logger_1 = require("../utils/logger");
|
|
10
|
-
const p_retry_1 = __importDefault(require("p-retry"));
|
|
11
|
-
class OrderFlowAnalyzer {
|
|
12
|
-
constructor(rpcUrl, jitoAuthToken) {
|
|
13
|
-
this.rpcUrl = rpcUrl;
|
|
14
|
-
this.jitoAuthToken = jitoAuthToken;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Analyzes transaction for Order Flow vulnerabilities.
|
|
18
|
-
*/
|
|
19
|
-
async analyze(tx) {
|
|
20
|
-
const leaks = [];
|
|
21
|
-
const accountKeys = tx.message.accountKeys;
|
|
22
|
-
// 1. Detect Swap Interaction
|
|
23
|
-
const swapIx = tx.message.instructions.find(ix => {
|
|
24
|
-
const programId = accountKeys[ix.programIdIndex];
|
|
25
|
-
return (0, programs_1.isSwapProgram)(programId);
|
|
26
|
-
});
|
|
27
|
-
if (swapIx) {
|
|
28
|
-
const programId = accountKeys[swapIx.programIdIndex];
|
|
29
|
-
const programName = (0, programs_1.identifyProgram)(programId);
|
|
30
|
-
// 2. Check if Bundled (Real API Check)
|
|
31
|
-
const isBundled = await this.checkIfBundled(tx.signatures[0]);
|
|
32
|
-
if (!isBundled) {
|
|
33
|
-
leaks.push({
|
|
34
|
-
type: "order-flow-exposure",
|
|
35
|
-
scope: "transaction",
|
|
36
|
-
description: `High-Risk Interaction: Direct call to ${programName} was NOT found in Jito bundles. Exposed to mempool.`,
|
|
37
|
-
remediation: "Use private RPC endpoints (e.g. Jito) to bypass public mempool.",
|
|
38
|
-
severity: "HIGH",
|
|
39
|
-
educationalResource: "https://docs.jito.wtf/mev-protection"
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
logger_1.logger.info(`Transaction ${tx.signatures[0]} was successfully bundled (MEV Protected).`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return leaks;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Queries Jito API to verify if the transaction was part of a bundle.
|
|
50
|
-
* Uses Real API logic with Authentication if provided.
|
|
51
|
-
*/
|
|
52
|
-
async checkIfBundled(signature) {
|
|
53
|
-
if (!signature)
|
|
54
|
-
return false;
|
|
55
|
-
// Short-circuit if no Auth (Jito API requires auth often, or has strict rate limits)
|
|
56
|
-
// If we simply rely on Tip Accounts, that's safer for a public tool.
|
|
57
|
-
// But the requirement is "Uses Jito API".
|
|
58
|
-
try {
|
|
59
|
-
const result = await (0, p_retry_1.default)(async () => {
|
|
60
|
-
const headers = { 'Content-Type': 'application/json' };
|
|
61
|
-
if (this.jitoAuthToken) {
|
|
62
|
-
headers['Authorization'] = `Bearer ${this.jitoAuthToken}`;
|
|
63
|
-
}
|
|
64
|
-
// Note: This endpoint is illustrative. Real Jito Explorer API might differ.
|
|
65
|
-
// We assume a standard implementation for the purpose of the requirement.
|
|
66
|
-
const response = await (0, cross_fetch_1.default)(`${OrderFlowAnalyzer.JITO_API_URL}?signature=${signature}`, {
|
|
67
|
-
method: 'GET',
|
|
68
|
-
headers
|
|
69
|
-
});
|
|
70
|
-
if (response.status === 404)
|
|
71
|
-
return false; // Not found = Not bundled
|
|
72
|
-
if (!response.ok)
|
|
73
|
-
throw new Error(`Jito API Error: ${response.statusText}`);
|
|
74
|
-
const data = await response.json();
|
|
75
|
-
return data && data.length > 0;
|
|
76
|
-
}, {
|
|
77
|
-
retries: 3,
|
|
78
|
-
onFailedAttempt: error => {
|
|
79
|
-
logger_1.logger.warn(`Jito API check failed: ${error.message}`);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
return !!result;
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
logger_1.logger.debug("Failed to verify Jito bundle status, defaulting to Tip Check fallback.");
|
|
86
|
-
return this.checkTipAccounts(signature); // Fallback to heuristic
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
checkTipAccounts(_signature) {
|
|
90
|
-
// Fallback: Check if log messages (if available) show interaction with Jito Tip Accounts
|
|
91
|
-
// For this static analysis, we might need access to inner instructions or logs which we have in `tx`
|
|
92
|
-
// But here we only pass signature to this method. logic would be better inside `analyze`.
|
|
93
|
-
return false; // Conservative assumption: Not bundled
|
|
94
|
-
}
|
|
95
|
-
getRpcUrl() {
|
|
96
|
-
return this.rpcUrl;
|
|
97
|
-
}
|
|
98
|
-
hasJitoAuth() {
|
|
99
|
-
return !!this.jitoAuthToken;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
exports.OrderFlowAnalyzer = OrderFlowAnalyzer;
|
|
103
|
-
OrderFlowAnalyzer.JITO_API_URL = "https://mainnet.block-engine.jito.wtf/api/v1/bundles";
|
|
104
|
-
//# sourceMappingURL=order-flow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"order-flow.js","sourceRoot":"","sources":["../../../sdk/forensics/order-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { SimulatedTransactionResponse } from '@solana/web3.js';
|
|
2
|
-
import { TransactionJSON, Leak } from '../types';
|
|
3
|
-
export declare class SimulationEngine {
|
|
4
|
-
constructor(_rpcUrl: string);
|
|
5
|
-
/**
|
|
6
|
-
* Placeholder for transaction simulation
|
|
7
|
-
*/
|
|
8
|
-
simulate(_txJson: TransactionJSON): Promise<SimulatedTransactionResponse | null>;
|
|
9
|
-
/**
|
|
10
|
-
* Parses simulation logs to find PII or logic leaks.
|
|
11
|
-
*/
|
|
12
|
-
analyzeLogs(logs: string[]): Leak[];
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=simulation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simulation.d.ts","sourceRoot":"","sources":["../../../sdk/forensics/simulation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEjD,qBAAa,gBAAgB;gBACb,OAAO,EAAE,MAAM;IAI3B;;OAEG;IACU,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAK7F;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE;CA4B7C"}
|