@deserialize/multi-vm-wallet 1.4.12 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +7 -1
- package/BUILD_OPTIMIZATION_PLAN.md +640 -0
- package/BUILD_RESULTS.md +282 -0
- package/BUN_MIGRATION.md +415 -0
- package/CHANGELOG_SECURITY.md +573 -0
- package/IMPLEMENTATION_SUMMARY.md +494 -0
- package/SECURITY_AUDIT.md +1124 -0
- package/bun.lock +553 -0
- package/dist/IChainWallet.js +0 -5
- package/dist/bip32Old.js +0 -885
- package/dist/bip32Small.js +0 -79
- package/dist/bipTest.js +0 -362
- package/dist/constant.js +0 -17
- package/dist/english.js +0 -1
- package/dist/evm/aa-service/index.d.ts +0 -5
- package/dist/evm/aa-service/index.js +0 -14
- package/dist/evm/aa-service/lib/account-adapter.d.ts +0 -22
- package/dist/evm/aa-service/lib/account-adapter.js +0 -24
- package/dist/evm/aa-service/lib/kernel-account.d.ts +0 -30
- package/dist/evm/aa-service/lib/kernel-account.js +2 -67
- package/dist/evm/aa-service/lib/kernel-modules.d.ts +0 -177
- package/dist/evm/aa-service/lib/kernel-modules.js +4 -202
- package/dist/evm/aa-service/lib/session-keys.d.ts +0 -118
- package/dist/evm/aa-service/lib/session-keys.js +7 -151
- package/dist/evm/aa-service/lib/type.d.ts +0 -55
- package/dist/evm/aa-service/lib/type.js +0 -10
- package/dist/evm/aa-service/services/account-abstraction.d.ts +0 -426
- package/dist/evm/aa-service/services/account-abstraction.js +0 -461
- package/dist/evm/aa-service/services/bundler.d.ts +0 -6
- package/dist/evm/aa-service/services/bundler.js +0 -54
- package/dist/evm/evm.d.ts +10 -67
- package/dist/evm/evm.js +339 -102
- package/dist/evm/index.js +0 -3
- package/dist/evm/script.js +3 -17
- package/dist/evm/smartWallet.d.ts +0 -173
- package/dist/evm/smartWallet.js +0 -206
- package/dist/evm/smartWallet.types.d.ts +0 -6
- package/dist/evm/smartWallet.types.js +0 -8
- package/dist/evm/transaction.utils.d.ts +0 -242
- package/dist/evm/transaction.utils.js +4 -320
- package/dist/evm/transactionParsing.d.ts +0 -11
- package/dist/evm/transactionParsing.js +28 -147
- package/dist/evm/utils.d.ts +0 -46
- package/dist/evm/utils.js +1 -57
- package/dist/helpers/index.d.ts +0 -4
- package/dist/helpers/index.js +8 -44
- package/dist/helpers/routeScan.js +0 -1
- package/dist/index.js +0 -1
- package/dist/old.js +0 -884
- package/dist/price.js +0 -1
- package/dist/price.types.js +0 -2
- package/dist/rate-limiter.d.ts +28 -0
- package/dist/rate-limiter.js +95 -0
- package/dist/retry-logic.d.ts +14 -0
- package/dist/retry-logic.js +120 -0
- package/dist/savings/index.d.ts +1 -0
- package/dist/savings/index.js +16 -2
- package/dist/savings/saving-manager.d.ts +46 -0
- package/dist/savings/saving-manager.js +176 -0
- package/dist/savings/savings-operations.d.ts +39 -0
- package/dist/savings/savings-operations.js +141 -0
- package/dist/savings/smart-savings.d.ts +0 -63
- package/dist/savings/smart-savings.js +0 -78
- package/dist/savings/types.d.ts +0 -69
- package/dist/savings/types.js +0 -7
- package/dist/savings/validation.d.ts +9 -0
- package/dist/savings/validation.js +85 -0
- package/dist/svm/constant.js +0 -1
- package/dist/svm/index.js +0 -1
- package/dist/svm/svm.d.ts +7 -13
- package/dist/svm/svm.js +262 -46
- package/dist/svm/transactionParsing.d.ts +0 -7
- package/dist/svm/transactionParsing.js +3 -41
- package/dist/svm/transactionSender.js +0 -9
- package/dist/svm/utils.d.ts +0 -12
- package/dist/svm/utils.js +9 -60
- package/dist/test.d.ts +0 -4
- package/dist/test.js +15 -95
- package/dist/transaction-utils.d.ts +38 -0
- package/dist/transaction-utils.js +168 -0
- package/dist/types.d.ts +36 -0
- package/dist/types.js +0 -1
- package/dist/utils.js +0 -1
- package/dist/vm-validation.d.ts +11 -0
- package/dist/vm-validation.js +151 -0
- package/dist/vm.d.ts +14 -16
- package/dist/vm.js +64 -53
- package/dist/walletBip32.d.ts +2 -0
- package/dist/walletBip32.js +31 -66
- package/package.json +9 -4
- package/test-discovery.ts +235 -0
- package/test-pocket-discovery.ts +84 -0
- package/tsconfig.json +18 -11
- package/tsconfig.prod.json +10 -0
- package/utils/IChainWallet.ts +2 -0
- package/utils/evm/evm.ts +560 -39
- package/utils/rate-limiter.ts +179 -0
- package/utils/retry-logic.ts +271 -0
- package/utils/savings/EXAMPLES.md +883 -0
- package/utils/savings/SECURITY.md +731 -0
- package/utils/savings/index.ts +1 -1
- package/utils/savings/saving-manager.ts +656 -0
- package/utils/savings/savings-operations.ts +509 -0
- package/utils/savings/validation.ts +187 -0
- package/utils/svm/svm.ts +467 -20
- package/utils/test.ts +26 -3
- package/utils/transaction-utils.ts +394 -0
- package/utils/types.ts +100 -0
- package/utils/vm-validation.ts +280 -0
- package/utils/vm.ts +202 -24
- package/utils/walletBip32.ts +63 -3
- package/dist/IChainWallet.js.map +0 -1
- package/dist/bip32.d.ts +0 -9
- package/dist/bip32.js +0 -172
- package/dist/bip32.js.map +0 -1
- package/dist/bip32Old.js.map +0 -1
- package/dist/bip32Small.js.map +0 -1
- package/dist/bipTest.js.map +0 -1
- package/dist/constant.js.map +0 -1
- package/dist/english.js.map +0 -1
- package/dist/evm/SMART_WALLET_EXAMPLES.d.ts +0 -20
- package/dist/evm/SMART_WALLET_EXAMPLES.js +0 -451
- package/dist/evm/SMART_WALLET_EXAMPLES.js.map +0 -1
- package/dist/evm/aa-service/index.js.map +0 -1
- package/dist/evm/aa-service/lib/account-adapter.js.map +0 -1
- package/dist/evm/aa-service/lib/kernel-account.js.map +0 -1
- package/dist/evm/aa-service/lib/kernel-modules.js.map +0 -1
- package/dist/evm/aa-service/lib/session-keys.js.map +0 -1
- package/dist/evm/aa-service/lib/type.js.map +0 -1
- package/dist/evm/aa-service/services/account-abstraction.js.map +0 -1
- package/dist/evm/aa-service/services/bundler.js.map +0 -1
- package/dist/evm/evm.js.map +0 -1
- package/dist/evm/index.js.map +0 -1
- package/dist/evm/script.js.map +0 -1
- package/dist/evm/smartWallet.js.map +0 -1
- package/dist/evm/smartWallet.types.js.map +0 -1
- package/dist/evm/transaction.utils.js.map +0 -1
- package/dist/evm/transactionParsing.js.map +0 -1
- package/dist/evm/utils.js.map +0 -1
- package/dist/helpers/index.js.map +0 -1
- package/dist/helpers/routeScan.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/old.js.map +0 -1
- package/dist/price.js.map +0 -1
- package/dist/price.types.js.map +0 -1
- package/dist/privacy/artifact-manager.d.ts +0 -117
- package/dist/privacy/artifact-manager.js +0 -251
- package/dist/privacy/artifact-manager.js.map +0 -1
- package/dist/privacy/broadcaster-client.d.ts +0 -166
- package/dist/privacy/broadcaster-client.js +0 -261
- package/dist/privacy/broadcaster-client.js.map +0 -1
- package/dist/privacy/index.d.ts +0 -34
- package/dist/privacy/index.js +0 -56
- package/dist/privacy/index.js.map +0 -1
- package/dist/privacy/network-config.d.ts +0 -57
- package/dist/privacy/network-config.js +0 -118
- package/dist/privacy/network-config.js.map +0 -1
- package/dist/privacy/poi-helper.d.ts +0 -161
- package/dist/privacy/poi-helper.js +0 -249
- package/dist/privacy/poi-helper.js.map +0 -1
- package/dist/privacy/railgun-engine.d.ts +0 -135
- package/dist/privacy/railgun-engine.js +0 -205
- package/dist/privacy/railgun-engine.js.map +0 -1
- package/dist/privacy/railgun-privacy-wallet.d.ts +0 -288
- package/dist/privacy/railgun-privacy-wallet.js +0 -539
- package/dist/privacy/railgun-privacy-wallet.js.map +0 -1
- package/dist/privacy/types.d.ts +0 -229
- package/dist/privacy/types.js +0 -26
- package/dist/privacy/types.js.map +0 -1
- package/dist/savings/index.js.map +0 -1
- package/dist/savings/saving-actions.d.ts +0 -0
- package/dist/savings/saving-actions.js +0 -78
- package/dist/savings/saving-actions.js.map +0 -1
- package/dist/savings/savings-manager.d.ts +0 -126
- package/dist/savings/savings-manager.js +0 -234
- package/dist/savings/savings-manager.js.map +0 -1
- package/dist/savings/smart-savings.js.map +0 -1
- package/dist/savings/types.js.map +0 -1
- package/dist/svm/constant.js.map +0 -1
- package/dist/svm/index.js.map +0 -1
- package/dist/svm/svm.js.map +0 -1
- package/dist/svm/transactionParsing.js.map +0 -1
- package/dist/svm/transactionSender.js.map +0 -1
- package/dist/svm/utils.js.map +0 -1
- package/dist/test.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils.js.map +0 -1
- package/dist/vm.js.map +0 -1
- package/dist/walletBip32.js.map +0 -1
- package/utils/savings/saving-actions.ts +0 -92
- package/utils/savings/savings-manager.ts +0 -271
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RAILGUN Broadcaster Client
|
|
3
|
-
*
|
|
4
|
-
* Manages interaction with RAILGUN broadcasters (relayers) for anonymous
|
|
5
|
-
* transaction submission.
|
|
6
|
-
*
|
|
7
|
-
* Broadcasters:
|
|
8
|
-
* - Submit transactions anonymously (hide user IP)
|
|
9
|
-
* - Pay gas fees on behalf of users
|
|
10
|
-
* - Charge fees in tokens for their service
|
|
11
|
-
* - Communicate via Waku Network (decentralized messaging)
|
|
12
|
-
*
|
|
13
|
-
* Hybrid Approach:
|
|
14
|
-
* - Use own broadcasters when available
|
|
15
|
-
* - Fall back to public broadcasters
|
|
16
|
-
*/
|
|
17
|
-
import { NetworkName } from '@railgun-community/shared-models';
|
|
18
|
-
import { BroadcasterInfo, BroadcasterFeeCallback, PrivateTransferTransaction, UnshieldTransaction } from './types';
|
|
19
|
-
/**
|
|
20
|
-
* Broadcaster Client
|
|
21
|
-
*
|
|
22
|
-
* Provides utilities for interacting with RAILGUN broadcasters.
|
|
23
|
-
* Supports hybrid approach: custom + public broadcasters.
|
|
24
|
-
*/
|
|
25
|
-
export declare class BroadcasterClient {
|
|
26
|
-
private customBroadcasters;
|
|
27
|
-
private publicBroadcasters;
|
|
28
|
-
/**
|
|
29
|
-
* Create broadcaster client
|
|
30
|
-
*
|
|
31
|
-
* @param customBroadcasters - Your own broadcaster nodes (optional)
|
|
32
|
-
* @param usePublicBroadcasters - Whether to use public broadcasters as fallback
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```typescript
|
|
36
|
-
* const client = new BroadcasterClient(
|
|
37
|
-
* [
|
|
38
|
-
* {
|
|
39
|
-
* railgunAddress: "0zk...",
|
|
40
|
-
* feePercentage: 0.1, // 0.1%
|
|
41
|
-
* availableNetworks: [NetworkName.Ethereum, NetworkName.Polygon],
|
|
42
|
-
* reliability: 0.99
|
|
43
|
-
* }
|
|
44
|
-
* ],
|
|
45
|
-
* true // Also use public broadcasters
|
|
46
|
-
* );
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
constructor(customBroadcasters?: BroadcasterInfo[], usePublicBroadcasters?: boolean);
|
|
50
|
-
/**
|
|
51
|
-
* Get available broadcasters for a network
|
|
52
|
-
*
|
|
53
|
-
* Returns custom broadcasters first, then public ones.
|
|
54
|
-
*
|
|
55
|
-
* @param network - Network to query
|
|
56
|
-
* @returns Array of broadcaster info sorted by fee (lowest first)
|
|
57
|
-
*/
|
|
58
|
-
getAvailableBroadcasters(network: NetworkName): BroadcasterInfo[];
|
|
59
|
-
/**
|
|
60
|
-
* Calculate broadcaster fee for a transaction
|
|
61
|
-
*
|
|
62
|
-
* @param tokenAddress - Token being transferred
|
|
63
|
-
* @param amount - Transfer amount
|
|
64
|
-
* @param network - Network
|
|
65
|
-
* @param broadcasterAddress - Specific broadcaster (optional - uses cheapest if not specified)
|
|
66
|
-
*
|
|
67
|
-
* @returns Fee amount in same token
|
|
68
|
-
*
|
|
69
|
-
* @example
|
|
70
|
-
* ```typescript
|
|
71
|
-
* const fee = await client.calculateFee(
|
|
72
|
-
* USDC_ADDRESS,
|
|
73
|
-
* parseUnits("100", 6),
|
|
74
|
-
* NetworkName.Ethereum
|
|
75
|
-
* );
|
|
76
|
-
*
|
|
77
|
-
* console.log(`Fee: ${formatUnits(fee, 6)} USDC`);
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
calculateFee(tokenAddress: string, amount: bigint, network: NetworkName, broadcasterAddress?: string): Promise<bigint>;
|
|
81
|
-
/**
|
|
82
|
-
* Submit transaction via broadcaster
|
|
83
|
-
*
|
|
84
|
-
* Sends transaction to broadcaster for anonymous submission.
|
|
85
|
-
* Broadcaster pays gas and charges fee in tokens.
|
|
86
|
-
*
|
|
87
|
-
* NOTE: This is a simplified implementation. In production, you would:
|
|
88
|
-
* 1. Connect to Waku Network
|
|
89
|
-
* 2. Find available broadcasters
|
|
90
|
-
* 3. Submit transaction via Waku
|
|
91
|
-
* 4. Wait for confirmation
|
|
92
|
-
*
|
|
93
|
-
* @param transaction - Private transfer or unshield transaction
|
|
94
|
-
* @param network - Network
|
|
95
|
-
* @param broadcasterAddress - Specific broadcaster (optional)
|
|
96
|
-
*
|
|
97
|
-
* @returns Transaction hash
|
|
98
|
-
*
|
|
99
|
-
* @example
|
|
100
|
-
* ```typescript
|
|
101
|
-
* const tx = await wallet.buildPrivateTransfer(...);
|
|
102
|
-
* const txHash = await client.submitTransaction(
|
|
103
|
-
* tx,
|
|
104
|
-
* NetworkName.Ethereum
|
|
105
|
-
* );
|
|
106
|
-
*
|
|
107
|
-
* console.log(`Submitted anonymously: ${txHash}`);
|
|
108
|
-
* ```
|
|
109
|
-
*/
|
|
110
|
-
submitTransaction(transaction: PrivateTransferTransaction | UnshieldTransaction, network: NetworkName, broadcasterAddress?: string): Promise<string>;
|
|
111
|
-
/**
|
|
112
|
-
* Get recommended broadcaster for a network
|
|
113
|
-
*
|
|
114
|
-
* Returns the broadcaster with best combination of low fees and high reliability.
|
|
115
|
-
*
|
|
116
|
-
* @param network - Network
|
|
117
|
-
* @returns Recommended broadcaster info
|
|
118
|
-
*/
|
|
119
|
-
getRecommendedBroadcaster(network: NetworkName): BroadcasterInfo | undefined;
|
|
120
|
-
/**
|
|
121
|
-
* Add custom broadcaster
|
|
122
|
-
*
|
|
123
|
-
* @param broadcaster - Broadcaster info
|
|
124
|
-
*/
|
|
125
|
-
addCustomBroadcaster(broadcaster: BroadcasterInfo): void;
|
|
126
|
-
/**
|
|
127
|
-
* Remove custom broadcaster
|
|
128
|
-
*
|
|
129
|
-
* @param railgunAddress - Broadcaster's RAILGUN address
|
|
130
|
-
*/
|
|
131
|
-
removeCustomBroadcaster(railgunAddress: string): void;
|
|
132
|
-
/**
|
|
133
|
-
* Get all custom broadcasters
|
|
134
|
-
*/
|
|
135
|
-
getCustomBroadcasters(): BroadcasterInfo[];
|
|
136
|
-
/**
|
|
137
|
-
* Get default public RAILGUN broadcasters
|
|
138
|
-
*
|
|
139
|
-
* Returns list of known public broadcasters.
|
|
140
|
-
* In production, this would query the Waku network for active broadcasters.
|
|
141
|
-
*/
|
|
142
|
-
private getDefaultPublicBroadcasters;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Helper: Create broadcaster fee callback
|
|
146
|
-
*
|
|
147
|
-
* Returns a function that calculates broadcaster fees dynamically.
|
|
148
|
-
* Useful for transaction building.
|
|
149
|
-
*
|
|
150
|
-
* @param client - Broadcaster client
|
|
151
|
-
* @param broadcasterAddress - Specific broadcaster (optional)
|
|
152
|
-
*
|
|
153
|
-
* @returns Fee calculation callback
|
|
154
|
-
*
|
|
155
|
-
* @example
|
|
156
|
-
* ```typescript
|
|
157
|
-
* const feeCallback = createBroadcasterFeeCallback(client);
|
|
158
|
-
*
|
|
159
|
-
* const fee = await feeCallback(
|
|
160
|
-
* USDC_ADDRESS,
|
|
161
|
-
* parseUnits("100", 6),
|
|
162
|
-
* NetworkName.Ethereum
|
|
163
|
-
* );
|
|
164
|
-
* ```
|
|
165
|
-
*/
|
|
166
|
-
export declare function createBroadcasterFeeCallback(client: BroadcasterClient, broadcasterAddress?: string): BroadcasterFeeCallback;
|
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* RAILGUN Broadcaster Client
|
|
4
|
-
*
|
|
5
|
-
* Manages interaction with RAILGUN broadcasters (relayers) for anonymous
|
|
6
|
-
* transaction submission.
|
|
7
|
-
*
|
|
8
|
-
* Broadcasters:
|
|
9
|
-
* - Submit transactions anonymously (hide user IP)
|
|
10
|
-
* - Pay gas fees on behalf of users
|
|
11
|
-
* - Charge fees in tokens for their service
|
|
12
|
-
* - Communicate via Waku Network (decentralized messaging)
|
|
13
|
-
*
|
|
14
|
-
* Hybrid Approach:
|
|
15
|
-
* - Use own broadcasters when available
|
|
16
|
-
* - Fall back to public broadcasters
|
|
17
|
-
*/
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.BroadcasterClient = void 0;
|
|
20
|
-
exports.createBroadcasterFeeCallback = createBroadcasterFeeCallback;
|
|
21
|
-
/**
|
|
22
|
-
* Broadcaster Client
|
|
23
|
-
*
|
|
24
|
-
* Provides utilities for interacting with RAILGUN broadcasters.
|
|
25
|
-
* Supports hybrid approach: custom + public broadcasters.
|
|
26
|
-
*/
|
|
27
|
-
class BroadcasterClient {
|
|
28
|
-
customBroadcasters;
|
|
29
|
-
publicBroadcasters;
|
|
30
|
-
/**
|
|
31
|
-
* Create broadcaster client
|
|
32
|
-
*
|
|
33
|
-
* @param customBroadcasters - Your own broadcaster nodes (optional)
|
|
34
|
-
* @param usePublicBroadcasters - Whether to use public broadcasters as fallback
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* ```typescript
|
|
38
|
-
* const client = new BroadcasterClient(
|
|
39
|
-
* [
|
|
40
|
-
* {
|
|
41
|
-
* railgunAddress: "0zk...",
|
|
42
|
-
* feePercentage: 0.1, // 0.1%
|
|
43
|
-
* availableNetworks: [NetworkName.Ethereum, NetworkName.Polygon],
|
|
44
|
-
* reliability: 0.99
|
|
45
|
-
* }
|
|
46
|
-
* ],
|
|
47
|
-
* true // Also use public broadcasters
|
|
48
|
-
* );
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
constructor(customBroadcasters = [], usePublicBroadcasters = true) {
|
|
52
|
-
this.customBroadcasters = customBroadcasters;
|
|
53
|
-
this.publicBroadcasters = usePublicBroadcasters ? this.getDefaultPublicBroadcasters() : [];
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Get available broadcasters for a network
|
|
57
|
-
*
|
|
58
|
-
* Returns custom broadcasters first, then public ones.
|
|
59
|
-
*
|
|
60
|
-
* @param network - Network to query
|
|
61
|
-
* @returns Array of broadcaster info sorted by fee (lowest first)
|
|
62
|
-
*/
|
|
63
|
-
getAvailableBroadcasters(network) {
|
|
64
|
-
const custom = this.customBroadcasters.filter(b => b.availableNetworks.includes(network));
|
|
65
|
-
const publicOnes = this.publicBroadcasters.filter(b => b.availableNetworks.includes(network));
|
|
66
|
-
const all = [...custom, ...publicOnes];
|
|
67
|
-
// Sort by fee (lowest first), then reliability (highest first)
|
|
68
|
-
return all.sort((a, b) => {
|
|
69
|
-
if (a.feePercentage !== b.feePercentage) {
|
|
70
|
-
return a.feePercentage - b.feePercentage;
|
|
71
|
-
}
|
|
72
|
-
return b.reliability - a.reliability;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Calculate broadcaster fee for a transaction
|
|
77
|
-
*
|
|
78
|
-
* @param tokenAddress - Token being transferred
|
|
79
|
-
* @param amount - Transfer amount
|
|
80
|
-
* @param network - Network
|
|
81
|
-
* @param broadcasterAddress - Specific broadcaster (optional - uses cheapest if not specified)
|
|
82
|
-
*
|
|
83
|
-
* @returns Fee amount in same token
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```typescript
|
|
87
|
-
* const fee = await client.calculateFee(
|
|
88
|
-
* USDC_ADDRESS,
|
|
89
|
-
* parseUnits("100", 6),
|
|
90
|
-
* NetworkName.Ethereum
|
|
91
|
-
* );
|
|
92
|
-
*
|
|
93
|
-
* console.log(`Fee: ${formatUnits(fee, 6)} USDC`);
|
|
94
|
-
* ```
|
|
95
|
-
*/
|
|
96
|
-
async calculateFee(tokenAddress, amount, network, broadcasterAddress) {
|
|
97
|
-
const broadcasters = this.getAvailableBroadcasters(network);
|
|
98
|
-
if (broadcasters.length === 0) {
|
|
99
|
-
throw new Error(`No broadcasters available for ${network}`);
|
|
100
|
-
}
|
|
101
|
-
let broadcaster;
|
|
102
|
-
if (broadcasterAddress) {
|
|
103
|
-
const found = broadcasters.find(b => b.railgunAddress === broadcasterAddress);
|
|
104
|
-
if (!found) {
|
|
105
|
-
throw new Error(`Broadcaster ${broadcasterAddress} not found`);
|
|
106
|
-
}
|
|
107
|
-
broadcaster = found;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
// Use cheapest broadcaster
|
|
111
|
-
broadcaster = broadcasters[0];
|
|
112
|
-
}
|
|
113
|
-
// Calculate fee: amount * feePercentage
|
|
114
|
-
const feePercentage = BigInt(Math.floor(broadcaster.feePercentage * 10000)); // Convert to basis points
|
|
115
|
-
const fee = (amount * feePercentage) / 10000n;
|
|
116
|
-
return fee;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Submit transaction via broadcaster
|
|
120
|
-
*
|
|
121
|
-
* Sends transaction to broadcaster for anonymous submission.
|
|
122
|
-
* Broadcaster pays gas and charges fee in tokens.
|
|
123
|
-
*
|
|
124
|
-
* NOTE: This is a simplified implementation. In production, you would:
|
|
125
|
-
* 1. Connect to Waku Network
|
|
126
|
-
* 2. Find available broadcasters
|
|
127
|
-
* 3. Submit transaction via Waku
|
|
128
|
-
* 4. Wait for confirmation
|
|
129
|
-
*
|
|
130
|
-
* @param transaction - Private transfer or unshield transaction
|
|
131
|
-
* @param network - Network
|
|
132
|
-
* @param broadcasterAddress - Specific broadcaster (optional)
|
|
133
|
-
*
|
|
134
|
-
* @returns Transaction hash
|
|
135
|
-
*
|
|
136
|
-
* @example
|
|
137
|
-
* ```typescript
|
|
138
|
-
* const tx = await wallet.buildPrivateTransfer(...);
|
|
139
|
-
* const txHash = await client.submitTransaction(
|
|
140
|
-
* tx,
|
|
141
|
-
* NetworkName.Ethereum
|
|
142
|
-
* );
|
|
143
|
-
*
|
|
144
|
-
* console.log(`Submitted anonymously: ${txHash}`);
|
|
145
|
-
* ```
|
|
146
|
-
*/
|
|
147
|
-
async submitTransaction(transaction, network, broadcasterAddress) {
|
|
148
|
-
const broadcasters = this.getAvailableBroadcasters(network);
|
|
149
|
-
if (broadcasters.length === 0) {
|
|
150
|
-
throw new Error(`No broadcasters available for ${network}`);
|
|
151
|
-
}
|
|
152
|
-
const broadcaster = broadcasterAddress
|
|
153
|
-
? broadcasters.find(b => b.railgunAddress === broadcasterAddress)
|
|
154
|
-
: broadcasters[0];
|
|
155
|
-
if (!broadcaster) {
|
|
156
|
-
throw new Error('Broadcaster not found');
|
|
157
|
-
}
|
|
158
|
-
// In a real implementation, this would:
|
|
159
|
-
// 1. Import @railgun-community/waku-broadcaster-client-web or -node
|
|
160
|
-
// 2. Connect to Waku network
|
|
161
|
-
// 3. Find broadcaster via Waku
|
|
162
|
-
// 4. Submit transaction anonymously
|
|
163
|
-
// 5. Return transaction hash
|
|
164
|
-
// Placeholder: Direct submission (NOT anonymous)
|
|
165
|
-
console.warn('BroadcasterClient.submitTransaction is a placeholder. ' +
|
|
166
|
-
'Integrate @railgun-community/waku-broadcaster-client for production.');
|
|
167
|
-
// For now, throw error directing implementer to use Waku client
|
|
168
|
-
throw new Error('Broadcaster submission requires Waku integration. ' +
|
|
169
|
-
'Install @railgun-community/waku-broadcaster-client-web or -node and implement Waku connection.');
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Get recommended broadcaster for a network
|
|
173
|
-
*
|
|
174
|
-
* Returns the broadcaster with best combination of low fees and high reliability.
|
|
175
|
-
*
|
|
176
|
-
* @param network - Network
|
|
177
|
-
* @returns Recommended broadcaster info
|
|
178
|
-
*/
|
|
179
|
-
getRecommendedBroadcaster(network) {
|
|
180
|
-
const broadcasters = this.getAvailableBroadcasters(network);
|
|
181
|
-
return broadcasters[0]; // Already sorted by fee, then reliability
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Add custom broadcaster
|
|
185
|
-
*
|
|
186
|
-
* @param broadcaster - Broadcaster info
|
|
187
|
-
*/
|
|
188
|
-
addCustomBroadcaster(broadcaster) {
|
|
189
|
-
this.customBroadcasters.push(broadcaster);
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Remove custom broadcaster
|
|
193
|
-
*
|
|
194
|
-
* @param railgunAddress - Broadcaster's RAILGUN address
|
|
195
|
-
*/
|
|
196
|
-
removeCustomBroadcaster(railgunAddress) {
|
|
197
|
-
this.customBroadcasters = this.customBroadcasters.filter(b => b.railgunAddress !== railgunAddress);
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Get all custom broadcasters
|
|
201
|
-
*/
|
|
202
|
-
getCustomBroadcasters() {
|
|
203
|
-
return [...this.customBroadcasters];
|
|
204
|
-
}
|
|
205
|
-
// ===== PRIVATE HELPERS =====
|
|
206
|
-
/**
|
|
207
|
-
* Get default public RAILGUN broadcasters
|
|
208
|
-
*
|
|
209
|
-
* Returns list of known public broadcasters.
|
|
210
|
-
* In production, this would query the Waku network for active broadcasters.
|
|
211
|
-
*/
|
|
212
|
-
getDefaultPublicBroadcasters() {
|
|
213
|
-
// Placeholder: In production, discover broadcasters via Waku
|
|
214
|
-
// For now, return empty array - implementer must provide their own
|
|
215
|
-
// or integrate Waku client to discover public broadcasters
|
|
216
|
-
return [];
|
|
217
|
-
// Example of what this might return:
|
|
218
|
-
// return [
|
|
219
|
-
// {
|
|
220
|
-
// railgunAddress: "0zk...",
|
|
221
|
-
// feePercentage: 0.1,
|
|
222
|
-
// availableNetworks: [
|
|
223
|
-
// NetworkName.Ethereum,
|
|
224
|
-
// NetworkName.Polygon,
|
|
225
|
-
// NetworkName.BNBChain,
|
|
226
|
-
// NetworkName.Arbitrum
|
|
227
|
-
// ],
|
|
228
|
-
// reliability: 0.95
|
|
229
|
-
// }
|
|
230
|
-
// ];
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
exports.BroadcasterClient = BroadcasterClient;
|
|
234
|
-
/**
|
|
235
|
-
* Helper: Create broadcaster fee callback
|
|
236
|
-
*
|
|
237
|
-
* Returns a function that calculates broadcaster fees dynamically.
|
|
238
|
-
* Useful for transaction building.
|
|
239
|
-
*
|
|
240
|
-
* @param client - Broadcaster client
|
|
241
|
-
* @param broadcasterAddress - Specific broadcaster (optional)
|
|
242
|
-
*
|
|
243
|
-
* @returns Fee calculation callback
|
|
244
|
-
*
|
|
245
|
-
* @example
|
|
246
|
-
* ```typescript
|
|
247
|
-
* const feeCallback = createBroadcasterFeeCallback(client);
|
|
248
|
-
*
|
|
249
|
-
* const fee = await feeCallback(
|
|
250
|
-
* USDC_ADDRESS,
|
|
251
|
-
* parseUnits("100", 6),
|
|
252
|
-
* NetworkName.Ethereum
|
|
253
|
-
* );
|
|
254
|
-
* ```
|
|
255
|
-
*/
|
|
256
|
-
function createBroadcasterFeeCallback(client, broadcasterAddress) {
|
|
257
|
-
return async (tokenAddress, amount, network) => {
|
|
258
|
-
return await client.calculateFee(tokenAddress, amount, network, broadcasterAddress);
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
//# sourceMappingURL=broadcaster-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"broadcaster-client.js","sourceRoot":"","sources":["../../utils/privacy/broadcaster-client.ts"],"names":[],"mappings":"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"}
|
package/dist/privacy/index.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RAILGUN Privacy Module
|
|
3
|
-
*
|
|
4
|
-
* Provides zero-knowledge privacy features for the wallet SDK.
|
|
5
|
-
* Completely independent from savings features.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { RailgunEngine, RailgunPrivacyWallet } from './privacy';
|
|
10
|
-
*
|
|
11
|
-
* // Initialize engine once
|
|
12
|
-
* await RailgunEngine.initialize({
|
|
13
|
-
* walletSource: 'mywallet',
|
|
14
|
-
* db,
|
|
15
|
-
* artifactStore,
|
|
16
|
-
* poiNodeURLs: ['...']
|
|
17
|
-
* });
|
|
18
|
-
*
|
|
19
|
-
* // Create privacy wallet
|
|
20
|
-
* const walletInfo = await RailgunPrivacyWallet.create(encryptionKey, mnemonic);
|
|
21
|
-
*
|
|
22
|
-
* // Use privacy features
|
|
23
|
-
* const wallet = await RailgunPrivacyWallet.load(encryptionKey, walletInfo.railgunWalletID);
|
|
24
|
-
* const shieldTx = await wallet.buildShield(...);
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export { RailgunEngine } from './railgun-engine';
|
|
28
|
-
export { RailgunPrivacyWallet } from './railgun-privacy-wallet';
|
|
29
|
-
export { ArtifactManager } from './artifact-manager';
|
|
30
|
-
export { POIHelper } from './poi-helper';
|
|
31
|
-
export { BroadcasterClient, createBroadcasterFeeCallback } from './broadcaster-client';
|
|
32
|
-
export { RAILGUN_NETWORKS, DEFAULT_POI_NODES, POI_STANDBY_PERIODS, getNetworkConfig, getNetworkConfigByChainId, isNetworkSupported, isChainIdSupported, getSupportedNetworks, getSupportedChainIds, getPOIStandbyPeriod, } from './network-config';
|
|
33
|
-
export type { RailgunDatabase, ArtifactStore, RailgunEngineConfig, PreloadedArtifacts, RailgunWalletInfo, PrivateBalance, BalanceUpdateCallback, ScanProgressCallback, BaseRailgunTransaction, ShieldTransaction, UnshieldTransaction, PrivateTransferTransaction, ShieldOptions, UnshieldOptions, PrivateTransferOptions, POISpendabilityResult, ArtifactDownloadProgress, ArtifactDownloadCallback, ArtifactSyncResult, RailgunNetworkConfig, BroadcasterInfo, BroadcasterFeeCallback, NetworkFees, } from './types';
|
|
34
|
-
export { BalanceBucket } from './types';
|
package/dist/privacy/index.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* RAILGUN Privacy Module
|
|
4
|
-
*
|
|
5
|
-
* Provides zero-knowledge privacy features for the wallet SDK.
|
|
6
|
-
* Completely independent from savings features.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { RailgunEngine, RailgunPrivacyWallet } from './privacy';
|
|
11
|
-
*
|
|
12
|
-
* // Initialize engine once
|
|
13
|
-
* await RailgunEngine.initialize({
|
|
14
|
-
* walletSource: 'mywallet',
|
|
15
|
-
* db,
|
|
16
|
-
* artifactStore,
|
|
17
|
-
* poiNodeURLs: ['...']
|
|
18
|
-
* });
|
|
19
|
-
*
|
|
20
|
-
* // Create privacy wallet
|
|
21
|
-
* const walletInfo = await RailgunPrivacyWallet.create(encryptionKey, mnemonic);
|
|
22
|
-
*
|
|
23
|
-
* // Use privacy features
|
|
24
|
-
* const wallet = await RailgunPrivacyWallet.load(encryptionKey, walletInfo.railgunWalletID);
|
|
25
|
-
* const shieldTx = await wallet.buildShield(...);
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.BalanceBucket = exports.getPOIStandbyPeriod = exports.getSupportedChainIds = exports.getSupportedNetworks = exports.isChainIdSupported = exports.isNetworkSupported = exports.getNetworkConfigByChainId = exports.getNetworkConfig = exports.POI_STANDBY_PERIODS = exports.DEFAULT_POI_NODES = exports.RAILGUN_NETWORKS = exports.createBroadcasterFeeCallback = exports.BroadcasterClient = exports.POIHelper = exports.ArtifactManager = exports.RailgunPrivacyWallet = exports.RailgunEngine = void 0;
|
|
30
|
-
// Core classes
|
|
31
|
-
var railgun_engine_1 = require("./railgun-engine");
|
|
32
|
-
Object.defineProperty(exports, "RailgunEngine", { enumerable: true, get: function () { return railgun_engine_1.RailgunEngine; } });
|
|
33
|
-
var railgun_privacy_wallet_1 = require("./railgun-privacy-wallet");
|
|
34
|
-
Object.defineProperty(exports, "RailgunPrivacyWallet", { enumerable: true, get: function () { return railgun_privacy_wallet_1.RailgunPrivacyWallet; } });
|
|
35
|
-
var artifact_manager_1 = require("./artifact-manager");
|
|
36
|
-
Object.defineProperty(exports, "ArtifactManager", { enumerable: true, get: function () { return artifact_manager_1.ArtifactManager; } });
|
|
37
|
-
var poi_helper_1 = require("./poi-helper");
|
|
38
|
-
Object.defineProperty(exports, "POIHelper", { enumerable: true, get: function () { return poi_helper_1.POIHelper; } });
|
|
39
|
-
var broadcaster_client_1 = require("./broadcaster-client");
|
|
40
|
-
Object.defineProperty(exports, "BroadcasterClient", { enumerable: true, get: function () { return broadcaster_client_1.BroadcasterClient; } });
|
|
41
|
-
Object.defineProperty(exports, "createBroadcasterFeeCallback", { enumerable: true, get: function () { return broadcaster_client_1.createBroadcasterFeeCallback; } });
|
|
42
|
-
// Network configuration
|
|
43
|
-
var network_config_1 = require("./network-config");
|
|
44
|
-
Object.defineProperty(exports, "RAILGUN_NETWORKS", { enumerable: true, get: function () { return network_config_1.RAILGUN_NETWORKS; } });
|
|
45
|
-
Object.defineProperty(exports, "DEFAULT_POI_NODES", { enumerable: true, get: function () { return network_config_1.DEFAULT_POI_NODES; } });
|
|
46
|
-
Object.defineProperty(exports, "POI_STANDBY_PERIODS", { enumerable: true, get: function () { return network_config_1.POI_STANDBY_PERIODS; } });
|
|
47
|
-
Object.defineProperty(exports, "getNetworkConfig", { enumerable: true, get: function () { return network_config_1.getNetworkConfig; } });
|
|
48
|
-
Object.defineProperty(exports, "getNetworkConfigByChainId", { enumerable: true, get: function () { return network_config_1.getNetworkConfigByChainId; } });
|
|
49
|
-
Object.defineProperty(exports, "isNetworkSupported", { enumerable: true, get: function () { return network_config_1.isNetworkSupported; } });
|
|
50
|
-
Object.defineProperty(exports, "isChainIdSupported", { enumerable: true, get: function () { return network_config_1.isChainIdSupported; } });
|
|
51
|
-
Object.defineProperty(exports, "getSupportedNetworks", { enumerable: true, get: function () { return network_config_1.getSupportedNetworks; } });
|
|
52
|
-
Object.defineProperty(exports, "getSupportedChainIds", { enumerable: true, get: function () { return network_config_1.getSupportedChainIds; } });
|
|
53
|
-
Object.defineProperty(exports, "getPOIStandbyPeriod", { enumerable: true, get: function () { return network_config_1.getPOIStandbyPeriod; } });
|
|
54
|
-
var types_1 = require("./types");
|
|
55
|
-
Object.defineProperty(exports, "BalanceBucket", { enumerable: true, get: function () { return types_1.BalanceBucket; } });
|
|
56
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/privacy/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;AAEH,eAAe;AACf,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA;AAC7B,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,2DAAuF;AAA9E,uHAAA,iBAAiB,OAAA;AAAE,kIAAA,4BAA4B,OAAA;AAExD,wBAAwB;AACxB,mDAW0B;AAVxB,kHAAA,gBAAgB,OAAA;AAChB,mHAAA,iBAAiB,OAAA;AACjB,qHAAA,mBAAmB,OAAA;AACnB,kHAAA,gBAAgB,OAAA;AAChB,2HAAA,yBAAyB,OAAA;AACzB,oHAAA,kBAAkB,OAAA;AAClB,oHAAA,kBAAkB,OAAA;AAClB,sHAAA,oBAAoB,OAAA;AACpB,sHAAA,oBAAoB,OAAA;AACpB,qHAAA,mBAAmB,OAAA;AA8BrB,iCAAwC;AAA/B,sGAAA,aAAa,OAAA"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RAILGUN Network Configurations
|
|
3
|
-
*
|
|
4
|
-
* Defines all supported RAILGUN networks with their deployment information.
|
|
5
|
-
* Based on official RAILGUN deployments as of 2024.
|
|
6
|
-
*
|
|
7
|
-
* Supported Networks:
|
|
8
|
-
* - Ethereum Mainnet
|
|
9
|
-
* - Polygon (Matic)
|
|
10
|
-
* - BNB Chain (BSC)
|
|
11
|
-
* - Arbitrum One
|
|
12
|
-
*/
|
|
13
|
-
import { NetworkName } from '@railgun-community/shared-models';
|
|
14
|
-
import { RailgunNetworkConfig } from './types';
|
|
15
|
-
/**
|
|
16
|
-
* All RAILGUN supported networks
|
|
17
|
-
*/
|
|
18
|
-
export declare const RAILGUN_NETWORKS: Record<string, RailgunNetworkConfig>;
|
|
19
|
-
/**
|
|
20
|
-
* Get RAILGUN network config by NetworkName
|
|
21
|
-
*/
|
|
22
|
-
export declare function getNetworkConfig(network: NetworkName): RailgunNetworkConfig | undefined;
|
|
23
|
-
/**
|
|
24
|
-
* Get RAILGUN network config by chain ID
|
|
25
|
-
*/
|
|
26
|
-
export declare function getNetworkConfigByChainId(chainId: number): RailgunNetworkConfig | undefined;
|
|
27
|
-
/**
|
|
28
|
-
* Check if a network is supported by RAILGUN
|
|
29
|
-
*/
|
|
30
|
-
export declare function isNetworkSupported(network: NetworkName): boolean;
|
|
31
|
-
/**
|
|
32
|
-
* Check if a chain ID is supported by RAILGUN
|
|
33
|
-
*/
|
|
34
|
-
export declare function isChainIdSupported(chainId: number): boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Get all supported NetworkName values
|
|
37
|
-
*/
|
|
38
|
-
export declare function getSupportedNetworks(): NetworkName[];
|
|
39
|
-
/**
|
|
40
|
-
* Get all supported chain IDs
|
|
41
|
-
*/
|
|
42
|
-
export declare function getSupportedChainIds(): number[];
|
|
43
|
-
/**
|
|
44
|
-
* Default POI (Proof of Innocence) aggregator nodes
|
|
45
|
-
*/
|
|
46
|
-
export declare const DEFAULT_POI_NODES: string[];
|
|
47
|
-
/**
|
|
48
|
-
* POI standby periods (in milliseconds)
|
|
49
|
-
*/
|
|
50
|
-
export declare const POI_STANDBY_PERIODS: {
|
|
51
|
-
mainnet: number;
|
|
52
|
-
testnet: number;
|
|
53
|
-
};
|
|
54
|
-
/**
|
|
55
|
-
* Get POI standby period for a network
|
|
56
|
-
*/
|
|
57
|
-
export declare function getPOIStandbyPeriod(network: NetworkName): number;
|