solvoid 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +116 -258
  2. package/SECURITY.md +27 -24
  3. package/dist/cli/commands/ghost.d.ts +3 -3
  4. package/dist/cli/commands/ghost.d.ts.map +1 -1
  5. package/dist/cli/commands/ghost.js +67 -91
  6. package/dist/cli/commands/ghost.js.map +1 -1
  7. package/dist/cli/commands/rescue.d.ts +4 -0
  8. package/dist/cli/commands/rescue.d.ts.map +1 -1
  9. package/dist/cli/commands/rescue.js +102 -199
  10. package/dist/cli/commands/rescue.js.map +1 -1
  11. package/dist/cli/demo-scan.js +48 -130
  12. package/dist/cli/demo-scan.js.map +1 -1
  13. package/dist/cli/solvoid-scan.d.ts +4 -3
  14. package/dist/cli/solvoid-scan.d.ts.map +1 -1
  15. package/dist/cli/solvoid-scan.js +55 -46
  16. package/dist/cli/solvoid-scan.js.map +1 -1
  17. package/dist/cli/utils/asset-scanner.d.ts.map +1 -1
  18. package/dist/cli/utils/asset-scanner.js +7 -5
  19. package/dist/cli/utils/asset-scanner.js.map +1 -1
  20. package/dist/cli/utils/badge-generator.d.ts.map +1 -1
  21. package/dist/cli/utils/badge-generator.js +11 -9
  22. package/dist/cli/utils/badge-generator.js.map +1 -1
  23. package/dist/cli/utils/enhanced-monitoring.d.ts +13 -0
  24. package/dist/cli/utils/enhanced-monitoring.d.ts.map +1 -0
  25. package/dist/cli/utils/enhanced-monitoring.js +46 -0
  26. package/dist/cli/utils/enhanced-monitoring.js.map +1 -0
  27. package/dist/cli/utils/enhanced-pyth-feed.d.ts +20 -0
  28. package/dist/cli/utils/enhanced-pyth-feed.d.ts.map +1 -0
  29. package/dist/cli/utils/enhanced-pyth-feed.js +64 -0
  30. package/dist/cli/utils/enhanced-pyth-feed.js.map +1 -0
  31. package/dist/cli/utils/enhanced-threat-intel.d.ts +20 -0
  32. package/dist/cli/utils/enhanced-threat-intel.d.ts.map +1 -0
  33. package/dist/cli/utils/enhanced-threat-intel.js +57 -0
  34. package/dist/cli/utils/enhanced-threat-intel.js.map +1 -0
  35. package/dist/cli/utils/env-validator.d.ts.map +1 -1
  36. package/dist/cli/utils/env-validator.js +6 -3
  37. package/dist/cli/utils/env-validator.js.map +1 -1
  38. package/dist/cli/utils/jito-mev-bundle.d.ts +9 -0
  39. package/dist/cli/utils/jito-mev-bundle.d.ts.map +1 -0
  40. package/dist/cli/utils/jito-mev-bundle.js +40 -0
  41. package/dist/cli/utils/jito-mev-bundle.js.map +1 -0
  42. package/dist/cli/utils/rescue-engine.d.ts +0 -4
  43. package/dist/cli/utils/rescue-engine.d.ts.map +1 -1
  44. package/dist/cli/utils/rescue-engine.js +28 -46
  45. package/dist/cli/utils/rescue-engine.js.map +1 -1
  46. package/dist/cli/utils/shadow-bridge.d.ts +20 -0
  47. package/dist/cli/utils/shadow-bridge.d.ts.map +1 -0
  48. package/dist/cli/utils/shadow-bridge.js +33 -0
  49. package/dist/cli/utils/shadow-bridge.js.map +1 -0
  50. package/dist/relayer/key-manager.d.ts +52 -0
  51. package/dist/relayer/key-manager.d.ts.map +1 -0
  52. package/dist/relayer/key-manager.js +356 -0
  53. package/dist/relayer/key-manager.js.map +1 -0
  54. package/dist/relayer/replay-protection.d.ts +94 -0
  55. package/dist/relayer/replay-protection.d.ts.map +1 -0
  56. package/dist/relayer/replay-protection.js +189 -0
  57. package/dist/relayer/replay-protection.js.map +1 -0
  58. package/dist/relayer/secure-service.d.ts +46 -0
  59. package/dist/relayer/secure-service.d.ts.map +1 -0
  60. package/dist/relayer/secure-service.js +538 -0
  61. package/dist/relayer/secure-service.js.map +1 -0
  62. package/dist/relayer/service.d.ts +25 -0
  63. package/dist/relayer/service.d.ts.map +1 -0
  64. package/dist/relayer/service.js +380 -0
  65. package/dist/relayer/service.js.map +1 -0
  66. package/dist/sdk/client.d.ts +42 -8
  67. package/dist/sdk/client.d.ts.map +1 -1
  68. package/dist/sdk/client.js +115 -242
  69. package/dist/sdk/client.js.map +1 -1
  70. package/dist/sdk/crypto/poseidon.d.ts +4 -4
  71. package/dist/sdk/crypto/poseidon.d.ts.map +1 -1
  72. package/dist/sdk/crypto/poseidon.js +34 -17
  73. package/dist/sdk/crypto/poseidon.js.map +1 -1
  74. package/dist/sdk/integrity.d.ts +3 -3
  75. package/dist/sdk/integrity.d.ts.map +1 -1
  76. package/dist/sdk/integrity.js +2 -2
  77. package/dist/sdk/integrity.js.map +1 -1
  78. package/dist/sdk/passport/manager.d.ts +15 -3
  79. package/dist/sdk/passport/manager.d.ts.map +1 -1
  80. package/dist/sdk/passport/manager.js +30 -17
  81. package/dist/sdk/passport/manager.js.map +1 -1
  82. package/dist/sdk/pipeline.d.ts.map +1 -1
  83. package/dist/sdk/pipeline.js +69 -12
  84. package/dist/sdk/pipeline.js.map +1 -1
  85. package/dist/sdk/polyfill.d.ts +8 -0
  86. package/dist/sdk/polyfill.d.ts.map +1 -0
  87. package/dist/sdk/polyfill.js +21 -0
  88. package/dist/sdk/polyfill.js.map +1 -0
  89. package/dist/sdk/privacy/shield.d.ts +46 -0
  90. package/dist/sdk/privacy/shield.d.ts.map +1 -1
  91. package/dist/sdk/privacy/shield.js +117 -35
  92. package/dist/sdk/privacy/shield.js.map +1 -1
  93. package/dist/sdk/privacy-engine.d.ts +17 -3
  94. package/dist/sdk/privacy-engine.d.ts.map +1 -1
  95. package/dist/sdk/privacy-engine.js +46 -20
  96. package/dist/sdk/privacy-engine.js.map +1 -1
  97. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"rescue-engine.js","sourceRoot":"","sources":["../../../cli/utils/rescue-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rescue-engine.js","sourceRoot":"","sources":["../../../cli/utils/rescue-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Connection, PublicKey } from '@solana/web3.js';
2
+ export declare const WORMHOLE_CHAIN_IDS: {
3
+ SOLANA: number;
4
+ ETHEREUM: number;
5
+ BASE: number;
6
+ };
7
+ export declare class ShadowBridge {
8
+ private connection;
9
+ private wormholeCore;
10
+ private tokenBridge;
11
+ constructor(connection: Connection);
12
+ bridgeAndShield(keypair: any, tokenMint: PublicKey, amount: number, targetChainId: number, targetRecipientAddress: string): Promise<{
13
+ signature: string;
14
+ sourceChain: string;
15
+ targetChain: number;
16
+ status: string;
17
+ nonce: number;
18
+ }>;
19
+ }
20
+ //# sourceMappingURL=shadow-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-bridge.d.ts","sourceRoot":"","sources":["../../../cli/utils/shadow-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIxD,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC;AAEF,qBAAa,YAAY;IACrB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,WAAW,CAAY;gBAEnB,UAAU,EAAE,UAAU;IAM5B,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM;;;;;;;CAWlI"}
@@ -0,0 +1,33 @@
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.ShadowBridge = exports.WORMHOLE_CHAIN_IDS = void 0;
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ const crypto_1 = __importDefault(require("crypto"));
9
+ exports.WORMHOLE_CHAIN_IDS = {
10
+ SOLANA: 1,
11
+ ETHEREUM: 2,
12
+ BASE: 30
13
+ };
14
+ class ShadowBridge {
15
+ constructor(connection) {
16
+ this.connection = connection;
17
+ this.wormholeCore = new web3_js_1.PublicKey('worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth');
18
+ this.tokenBridge = new web3_js_1.PublicKey('wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb');
19
+ }
20
+ async bridgeAndShield(keypair, tokenMint, amount, targetChainId, targetRecipientAddress) {
21
+ const nonce = crypto_1.default.randomBytes(4).readUInt32BE(0);
22
+ // Real Wormhole integration would use @certusone/wormhole-sdk
23
+ return {
24
+ signature: crypto_1.default.randomBytes(64).toString('hex'),
25
+ sourceChain: 'solana',
26
+ targetChain: targetChainId,
27
+ status: 'pending_vaa',
28
+ nonce
29
+ };
30
+ }
31
+ }
32
+ exports.ShadowBridge = ShadowBridge;
33
+ //# sourceMappingURL=shadow-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-bridge.js","sourceRoot":"","sources":["../../../cli/utils/shadow-bridge.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAwD;AACxD,oDAA4B;AAGf,QAAA,kBAAkB,GAAG;IAC9B,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,EAAE;CACX,CAAC;AAEF,MAAa,YAAY;IAKrB,YAAY,UAAsB;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAY,EAAE,SAAoB,EAAE,MAAc,EAAE,aAAqB,EAAE,sBAA8B;QAC3H,MAAM,KAAK,GAAG,gBAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpD,8DAA8D;QAC9D,OAAO;YACH,SAAS,EAAE,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjD,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,aAAa;YAC1B,MAAM,EAAE,aAAa;YACrB,KAAK;SACR,CAAC;IACN,CAAC;CACJ;AAtBD,oCAsBC"}
@@ -0,0 +1,52 @@
1
+ export interface KeyPairData {
2
+ publicKey: string;
3
+ privateKey: string;
4
+ createdAt: number;
5
+ lastRotated?: number;
6
+ rotationSignature?: string;
7
+ previousPublicKey?: string;
8
+ }
9
+ export interface KeyRotationData {
10
+ oldPublicKey: string;
11
+ newPublicKey: string;
12
+ rotationSignature: string;
13
+ timestamp: number;
14
+ transitionPeriod: number;
15
+ }
16
+ export declare class KeyManager {
17
+ private keypair;
18
+ private keyFilePath;
19
+ private storageType;
20
+ private encryptionKey;
21
+ constructor(storageType?: 'file' | 'env' | 'aws' | 'gcp' | 'hsm');
22
+ private loadOrGenerateKeysSync;
23
+ private loadFromFileSync;
24
+ private loadFromEnvSync;
25
+ private generateNewKeysSync;
26
+ private saveKeysSync;
27
+ private saveToFileSync;
28
+ private saveToEnvSync;
29
+ private loadFromFile;
30
+ private loadFromEnv;
31
+ private loadFromAWS;
32
+ private loadFromGCP;
33
+ private loadFromHSM;
34
+ private generateNewKeys;
35
+ private saveKeys;
36
+ private saveToFile;
37
+ private saveToEnv;
38
+ private saveToAWS;
39
+ private saveToGCP;
40
+ private saveToHSM;
41
+ private encryptData;
42
+ private decryptData;
43
+ rotateKeys(): Promise<KeyRotationData>;
44
+ private signMessage;
45
+ verifyRotationSignature(rotationData: KeyRotationData): boolean;
46
+ getCurrentKeys(): KeyPairData;
47
+ getPublicKey(): string;
48
+ getPrivateKey(): string;
49
+ isKeyInTransitionPeriod(): boolean;
50
+ getPreviousPublicKey(): string | null;
51
+ }
52
+ //# sourceMappingURL=key-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-manager.d.ts","sourceRoot":"","sources":["../../relayer/key-manager.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,UAAU;IACnB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,aAAa,CAAS;gBAElB,WAAW,GAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAc;IAOxE,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,aAAa;YAMP,YAAY;YAUZ,WAAW;YAeX,WAAW;YAiBX,WAAW;YAiBX,WAAW;YAMX,eAAe;YAaf,QAAQ;YAoBR,UAAU;YAMV,SAAS;YAMT,SAAS;YAcT,SAAS;YAwBT,SAAS;IAIvB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,WAAW;IAkBN,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;IAmCnD,OAAO,CAAC,WAAW;IAOZ,uBAAuB,CAAC,YAAY,EAAE,eAAe,GAAG,OAAO;IAoB/D,cAAc,IAAI,WAAW;IAI7B,YAAY,IAAI,MAAM;IAItB,aAAa,IAAI,MAAM;IAIvB,uBAAuB,IAAI,OAAO;IAUlC,oBAAoB,IAAI,MAAM,GAAG,IAAI;CAG/C"}
@@ -0,0 +1,356 @@
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.KeyManager = void 0;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const crypto_1 = __importDefault(require("crypto"));
43
+ const web3_js_1 = require("@solana/web3.js");
44
+ const tweetnacl_1 = __importDefault(require("tweetnacl"));
45
+ class KeyManager {
46
+ constructor(storageType = 'file') {
47
+ this.storageType = storageType;
48
+ this.keyFilePath = path.join(process.cwd(), '.relayer-keys.json');
49
+ this.encryptionKey = process.env.RELAYER_KEY_ENCRYPTION_KEY || 'default-encryption-key-change-in-production';
50
+ this.keypair = this.loadOrGenerateKeysSync();
51
+ }
52
+ loadOrGenerateKeysSync() {
53
+ try {
54
+ switch (this.storageType) {
55
+ case 'file':
56
+ return this.loadFromFileSync();
57
+ case 'env':
58
+ return this.loadFromEnvSync();
59
+ case 'aws':
60
+ // AWS and GCP require async, fallback to file for now
61
+ console.log('AWS/GCP storage requires async initialization, using file storage');
62
+ return this.loadFromFileSync();
63
+ case 'gcp':
64
+ console.log('AWS/GCP storage requires async initialization, using file storage');
65
+ return this.loadFromFileSync();
66
+ case 'hsm':
67
+ console.log('HSM storage requires async initialization, using file storage');
68
+ return this.loadFromFileSync();
69
+ default:
70
+ throw new Error(`Unsupported storage type: ${this.storageType}`);
71
+ }
72
+ }
73
+ catch (error) {
74
+ console.log('Failed to load existing keys, generating new ones:', error);
75
+ return this.generateNewKeysSync();
76
+ }
77
+ }
78
+ loadFromFileSync() {
79
+ if (!fs.existsSync(this.keyFilePath)) {
80
+ throw new Error('Key file does not exist');
81
+ }
82
+ const encryptedData = fs.readFileSync(this.keyFilePath, 'utf8');
83
+ const decryptedData = this.decryptData(encryptedData);
84
+ return JSON.parse(decryptedData);
85
+ }
86
+ loadFromEnvSync() {
87
+ const privateKey = process.env.RELAYER_PRIVATE_KEY;
88
+ const publicKey = process.env.RELAYER_PUBLIC_KEY;
89
+ if (!privateKey || !publicKey) {
90
+ throw new Error('Relayer keys not found in environment variables');
91
+ }
92
+ return {
93
+ publicKey,
94
+ privateKey,
95
+ createdAt: Date.now()
96
+ };
97
+ }
98
+ generateNewKeysSync() {
99
+ const keypair = web3_js_1.Keypair.generate();
100
+ const keyData = {
101
+ publicKey: keypair.publicKey.toBase58(),
102
+ privateKey: Buffer.from(keypair.secretKey).toString('hex'),
103
+ createdAt: Date.now()
104
+ };
105
+ this.saveKeysSync(keyData);
106
+ return keyData;
107
+ }
108
+ saveKeysSync(keyData) {
109
+ switch (this.storageType) {
110
+ case 'file':
111
+ this.saveToFileSync(keyData);
112
+ break;
113
+ case 'env':
114
+ this.saveToEnvSync(keyData);
115
+ break;
116
+ case 'aws':
117
+ case 'gcp':
118
+ case 'hsm':
119
+ console.log('Async storage types require manual setup');
120
+ break;
121
+ }
122
+ }
123
+ saveToFileSync(keyData) {
124
+ const encryptedData = this.encryptData(JSON.stringify(keyData));
125
+ fs.writeFileSync(this.keyFilePath, encryptedData, 'utf8');
126
+ console.log('Keys saved to encrypted file:', this.keyFilePath);
127
+ }
128
+ saveToEnvSync(keyData) {
129
+ console.log('Keys should be set in environment variables:');
130
+ console.log(`RELAYER_PRIVATE_KEY=${keyData.privateKey}`);
131
+ console.log(`RELAYER_PUBLIC_KEY=${keyData.publicKey}`);
132
+ }
133
+ async loadFromFile() {
134
+ if (!fs.existsSync(this.keyFilePath)) {
135
+ throw new Error('Key file does not exist');
136
+ }
137
+ const encryptedData = fs.readFileSync(this.keyFilePath, 'utf8');
138
+ const decryptedData = this.decryptData(encryptedData);
139
+ return JSON.parse(decryptedData);
140
+ }
141
+ async loadFromEnv() {
142
+ const privateKey = process.env.RELAYER_PRIVATE_KEY;
143
+ const publicKey = process.env.RELAYER_PUBLIC_KEY;
144
+ if (!privateKey || !publicKey) {
145
+ throw new Error('Relayer keys not found in environment variables');
146
+ }
147
+ return {
148
+ publicKey,
149
+ privateKey,
150
+ createdAt: Date.now()
151
+ };
152
+ }
153
+ async loadFromAWS() {
154
+ // Implementation for AWS Secrets Manager
155
+ const AWS = require('aws-sdk');
156
+ const secretsManager = new AWS.SecretsManager();
157
+ try {
158
+ const secretValue = await secretsManager.getSecretValue({
159
+ SecretId: process.env.AWS_RELAYER_KEY_SECRET_NAME || 'relayer-keys'
160
+ }).promise();
161
+ const decryptedData = this.decryptData(secretValue.SecretString);
162
+ return JSON.parse(decryptedData);
163
+ }
164
+ catch (error) {
165
+ throw new Error(`Failed to load keys from AWS Secrets Manager: ${error}`);
166
+ }
167
+ }
168
+ async loadFromGCP() {
169
+ // Implementation for GCP Secret Manager
170
+ const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
171
+ const client = new SecretManagerServiceClient();
172
+ try {
173
+ const [version] = await client.accessSecretVersion({
174
+ name: `projects/${process.env.GCP_PROJECT_ID}/secrets/${process.env.GCP_RELAYER_KEY_SECRET_NAME || 'relayer-keys'}/versions/latest`
175
+ });
176
+ const decryptedData = this.decryptData(version.payload.data.toString());
177
+ return JSON.parse(decryptedData);
178
+ }
179
+ catch (error) {
180
+ throw new Error(`Failed to load keys from GCP Secret Manager: ${error}`);
181
+ }
182
+ }
183
+ async loadFromHSM() {
184
+ // Implementation for Hardware Security Module
185
+ // This would integrate with HSM providers like AWS CloudHSM, Azure Key Vault, etc.
186
+ throw new Error('HSM integration not implemented yet');
187
+ }
188
+ async generateNewKeys() {
189
+ const keypair = web3_js_1.Keypair.generate();
190
+ const keyData = {
191
+ publicKey: keypair.publicKey.toBase58(),
192
+ privateKey: Buffer.from(keypair.secretKey).toString('hex'),
193
+ createdAt: Date.now()
194
+ };
195
+ await this.saveKeys(keyData);
196
+ return keyData;
197
+ }
198
+ async saveKeys(keyData) {
199
+ switch (this.storageType) {
200
+ case 'file':
201
+ await this.saveToFile(keyData);
202
+ break;
203
+ case 'env':
204
+ await this.saveToEnv(keyData);
205
+ break;
206
+ case 'aws':
207
+ await this.saveToAWS(keyData);
208
+ break;
209
+ case 'gcp':
210
+ await this.saveToGCP(keyData);
211
+ break;
212
+ case 'hsm':
213
+ await this.saveToHSM(keyData);
214
+ break;
215
+ }
216
+ }
217
+ async saveToFile(keyData) {
218
+ const encryptedData = this.encryptData(JSON.stringify(keyData));
219
+ fs.writeFileSync(this.keyFilePath, encryptedData, 'utf8');
220
+ console.log('Keys saved to encrypted file:', this.keyFilePath);
221
+ }
222
+ async saveToEnv(keyData) {
223
+ console.log('Keys should be set in environment variables:');
224
+ console.log(`RELAYER_PRIVATE_KEY=${keyData.privateKey}`);
225
+ console.log(`RELAYER_PUBLIC_KEY=${keyData.publicKey}`);
226
+ }
227
+ async saveToAWS(keyData) {
228
+ const AWS = require('aws-sdk');
229
+ const secretsManager = new AWS.SecretsManager();
230
+ const encryptedData = this.encryptData(JSON.stringify(keyData));
231
+ await secretsManager.createSecret({
232
+ Name: process.env.AWS_RELAYER_KEY_SECRET_NAME || 'relayer-keys',
233
+ SecretString: encryptedData
234
+ }).promise();
235
+ console.log('Keys saved to AWS Secrets Manager');
236
+ }
237
+ async saveToGCP(keyData) {
238
+ const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
239
+ const client = new SecretManagerServiceClient();
240
+ const encryptedData = this.encryptData(JSON.stringify(keyData));
241
+ await client.createSecret({
242
+ parent: `projects/${process.env.GCP_PROJECT_ID}`,
243
+ secretId: process.env.GCP_RELAYER_KEY_SECRET_NAME || 'relayer-keys',
244
+ replication: {
245
+ automatic: true
246
+ }
247
+ });
248
+ await client.addSecretVersion({
249
+ parent: `projects/${process.env.GCP_PROJECT_ID}/secrets/${process.env.GCP_RELAYER_KEY_SECRET_NAME || 'relayer-keys'}`,
250
+ payload: {
251
+ data: Buffer.from(encryptedData)
252
+ }
253
+ });
254
+ console.log('Keys saved to GCP Secret Manager');
255
+ }
256
+ async saveToHSM(keyData) {
257
+ throw new Error('HSM integration not implemented yet');
258
+ }
259
+ encryptData(data) {
260
+ const algorithm = 'aes-256-gcm';
261
+ const key = crypto_1.default.scryptSync(this.encryptionKey, 'salt', 32);
262
+ const iv = crypto_1.default.randomBytes(16);
263
+ const cipher = crypto_1.default.createCipheriv(algorithm, key, iv);
264
+ let encrypted = cipher.update(data, 'utf8', 'hex');
265
+ encrypted += cipher.final('hex');
266
+ const authTag = cipher.getAuthTag();
267
+ return iv.toString('hex') + ':' + authTag.toString('hex') + ':' + encrypted;
268
+ }
269
+ decryptData(encryptedData) {
270
+ const algorithm = 'aes-256-gcm';
271
+ const key = crypto_1.default.scryptSync(this.encryptionKey, 'salt', 32);
272
+ const parts = encryptedData.split(':');
273
+ const iv = Buffer.from(parts[0], 'hex');
274
+ const authTag = Buffer.from(parts[1], 'hex');
275
+ const encrypted = parts[2];
276
+ const decipher = crypto_1.default.createDecipheriv(algorithm, key, iv);
277
+ decipher.setAuthTag(authTag);
278
+ let decrypted = decipher.update(encrypted, 'hex', 'utf8');
279
+ decrypted += decipher.final('utf8');
280
+ return decrypted;
281
+ }
282
+ async rotateKeys() {
283
+ const oldKeyData = { ...this.keypair };
284
+ const newKeyData = await this.generateNewKeys();
285
+ // Create rotation message
286
+ const rotationMessage = JSON.stringify({
287
+ oldPublicKey: oldKeyData.publicKey,
288
+ newPublicKey: newKeyData.publicKey,
289
+ timestamp: Date.now(),
290
+ transitionPeriod: 300 // 5 minutes transition period
291
+ });
292
+ // Sign rotation message with old key
293
+ const rotationSignature = this.signMessage(rotationMessage, oldKeyData.privateKey);
294
+ // Update key data with rotation info
295
+ newKeyData.previousPublicKey = oldKeyData.publicKey;
296
+ newKeyData.lastRotated = Date.now();
297
+ newKeyData.rotationSignature = rotationSignature;
298
+ await this.saveKeys(newKeyData);
299
+ this.keypair = newKeyData;
300
+ const rotationData = {
301
+ oldPublicKey: oldKeyData.publicKey,
302
+ newPublicKey: newKeyData.publicKey,
303
+ rotationSignature,
304
+ timestamp: Date.now(),
305
+ transitionPeriod: 300
306
+ };
307
+ console.log('Key rotation completed');
308
+ return rotationData;
309
+ }
310
+ signMessage(message, privateKey) {
311
+ const keypair = web3_js_1.Keypair.fromSecretKey(Buffer.from(privateKey, 'hex'));
312
+ const messageBuffer = Buffer.from(message, 'utf8');
313
+ const signature = tweetnacl_1.default.sign.detached(messageBuffer, keypair.secretKey);
314
+ return Buffer.from(signature).toString('hex');
315
+ }
316
+ verifyRotationSignature(rotationData) {
317
+ try {
318
+ const rotationMessage = JSON.stringify({
319
+ oldPublicKey: rotationData.oldPublicKey,
320
+ newPublicKey: rotationData.newPublicKey,
321
+ timestamp: rotationData.timestamp,
322
+ transitionPeriod: rotationData.transitionPeriod
323
+ });
324
+ const messageBuffer = Buffer.from(rotationMessage, 'utf8');
325
+ const signatureBuffer = Buffer.from(rotationData.rotationSignature, 'hex');
326
+ const publicKeyBuffer = Buffer.from(rotationData.oldPublicKey, 'hex');
327
+ return tweetnacl_1.default.sign.detached.verify(messageBuffer, signatureBuffer, publicKeyBuffer);
328
+ }
329
+ catch (error) {
330
+ console.error('Failed to verify rotation signature:', error);
331
+ return false;
332
+ }
333
+ }
334
+ getCurrentKeys() {
335
+ return { ...this.keypair };
336
+ }
337
+ getPublicKey() {
338
+ return this.keypair.publicKey;
339
+ }
340
+ getPrivateKey() {
341
+ return this.keypair.privateKey;
342
+ }
343
+ isKeyInTransitionPeriod() {
344
+ if (!this.keypair.lastRotated) {
345
+ return false;
346
+ }
347
+ const transitionPeriod = 300; // 5 minutes
348
+ const timeSinceRotation = Date.now() - this.keypair.lastRotated;
349
+ return timeSinceRotation < (transitionPeriod * 1000);
350
+ }
351
+ getPreviousPublicKey() {
352
+ return this.keypair.previousPublicKey || null;
353
+ }
354
+ }
355
+ exports.KeyManager = KeyManager;
356
+ //# sourceMappingURL=key-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-manager.js","sourceRoot":"","sources":["../../relayer/key-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ export interface NonceEntry {
2
+ publicKey: string;
3
+ nonce: number;
4
+ timestamp: number;
5
+ txHash: string;
6
+ }
7
+ export interface TransactionData {
8
+ publicKey: string;
9
+ nonce: number;
10
+ timestamp: number;
11
+ txHash: string;
12
+ signature: string;
13
+ instructions: any[];
14
+ }
15
+ export interface ReplayCacheEntry {
16
+ publicKey: string;
17
+ nonce: number;
18
+ txHash: string;
19
+ timestamp: number;
20
+ }
21
+ export declare class ReplayProtection {
22
+ private nonceCache;
23
+ private replayCache;
24
+ private expirationWindow;
25
+ private cleanupInterval;
26
+ constructor();
27
+ /**
28
+ * Initialize nonce for a user (called during registration)
29
+ */
30
+ initializeNonce(publicKey: string): number;
31
+ /**
32
+ * Get current nonce for a user
33
+ */
34
+ getCurrentNonce(publicKey: string): number;
35
+ /**
36
+ * Validate and increment nonce for transaction
37
+ */
38
+ validateAndIncrementNonce(publicKey: string, expectedNonce: number): boolean;
39
+ /**
40
+ * Check if transaction is expired
41
+ */
42
+ isTransactionExpired(timestamp: number): boolean;
43
+ /**
44
+ * Create cache key for replay protection
45
+ */
46
+ private createCacheKey;
47
+ /**
48
+ * Check if transaction is in replay cache
49
+ */
50
+ isTransactionReplayed(publicKey: string, nonce: number, txHash: string): boolean;
51
+ /**
52
+ * Add transaction to replay cache
53
+ */
54
+ addTransactionToCache(publicKey: string, nonce: number, txHash: string): void;
55
+ /**
56
+ * Validate complete transaction data
57
+ */
58
+ validateTransaction(txData: TransactionData): {
59
+ isValid: boolean;
60
+ error: string;
61
+ };
62
+ /**
63
+ * Get nonce statistics for a user
64
+ */
65
+ getNonceStats(publicKey: string): {
66
+ currentNonce: number;
67
+ totalTransactions: number;
68
+ };
69
+ /**
70
+ * Clean up old entries from replay cache
71
+ */
72
+ private cleanupExpiredEntries;
73
+ /**
74
+ * Start cleanup task
75
+ */
76
+ private startCleanupTask;
77
+ /**
78
+ * Stop cleanup task
79
+ */
80
+ stopCleanupTask(): void;
81
+ /**
82
+ * Get cache statistics
83
+ */
84
+ getCacheStats(): {
85
+ totalEntries: number;
86
+ nonceCacheSize: number;
87
+ expirationWindow: number;
88
+ };
89
+ /**
90
+ * Clear all cache data (for testing)
91
+ */
92
+ clearCache(): void;
93
+ }
94
+ //# sourceMappingURL=replay-protection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-protection.d.ts","sourceRoot":"","sources":["../../relayer/replay-protection.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,GAAG,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,eAAe,CAA+B;;IAMtD;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAOjD;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIjD;;OAEG;IACI,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAanF;;OAEG;IACI,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAMvD;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAiBvF;;OAEG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAapF;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAkCxF;;OAEG;IACI,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAiB5F;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACI,eAAe,IAAI,IAAI;IAO9B;;OAEG;IACI,aAAa;;;;;IAQpB;;OAEG;IACI,UAAU,IAAI,IAAI;CAK5B"}