@kohaku-eth/tornado-cash 0.0.2-alpha.10 → 0.0.2-alpha.11
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/index.d.ts +40 -8
- package/dist/index.js +6 -11
- package/dist/msm-worker.browser.js +2838 -0
- package/dist/msm-worker.js +2853 -0
- package/dist/state-manager.worker.js +18709 -17136
- package/dist/state-manager.worker.node.cjs +18881 -17268
- package/dist/worker-loader.browser.d.ts +25 -3
- package/dist/worker-loader.node.d.ts +25 -3
- package/package.json +3 -4
package/dist/index.d.ts
CHANGED
|
@@ -305,6 +305,17 @@ interface IPaymasterWithdrawalPayload {
|
|
|
305
305
|
isERC20: boolean;
|
|
306
306
|
delegation?: SignedDelegation;
|
|
307
307
|
}
|
|
308
|
+
interface IGenericPaymasterWithdrawalPayload {
|
|
309
|
+
mode: 'paymaster';
|
|
310
|
+
proof: TornadoProveOutput;
|
|
311
|
+
poolAddress: Address;
|
|
312
|
+
isERC20: boolean;
|
|
313
|
+
paymasterAddress: `0x${string}`;
|
|
314
|
+
entryPointAddress: `0x${string}`;
|
|
315
|
+
bundlerUrl: string;
|
|
316
|
+
accountAddress: `0x${string}`;
|
|
317
|
+
delegation?: SignedDelegation;
|
|
318
|
+
}
|
|
308
319
|
interface PaymasterBroadcastResult {
|
|
309
320
|
userOpHash: Hash;
|
|
310
321
|
}
|
|
@@ -312,6 +323,16 @@ interface IPaymasterBroadcasterClient {
|
|
|
312
323
|
broadcast(withdrawals: IPaymasterWithdrawalPayload[]): Promise<PaymasterBroadcastResult[]>;
|
|
313
324
|
}
|
|
314
325
|
|
|
326
|
+
declare function makeLazyProverFactory(artifactsLoader: () => Promise<ITornadoArtifacts>, version?: 'legacy' | 'js'): () => Promise<ITornadoProver>;
|
|
327
|
+
|
|
328
|
+
interface WorkerInitOptions {
|
|
329
|
+
protocolConfig: TCProtocolConfig;
|
|
330
|
+
relayerConfig?: IRelayerFeeConfig;
|
|
331
|
+
accountIndex: number;
|
|
332
|
+
paymasterConfig: IChainsPaymastersConfig;
|
|
333
|
+
proverVersion?: Parameters<typeof makeLazyProverFactory>[1];
|
|
334
|
+
}
|
|
335
|
+
|
|
315
336
|
type DelegationConfig = {
|
|
316
337
|
mode: 'deterministic';
|
|
317
338
|
path?: string;
|
|
@@ -332,7 +353,7 @@ interface IRelayerWithdrawalPayload {
|
|
|
332
353
|
poolAddress: Address;
|
|
333
354
|
relayerUrl: string;
|
|
334
355
|
}
|
|
335
|
-
type IWithdrawalPayload = IRelayerWithdrawalPayload |
|
|
356
|
+
type IWithdrawalPayload = IRelayerWithdrawalPayload | IGenericPaymasterWithdrawalPayload;
|
|
336
357
|
interface TCPrivateOperation<Mode extends IWithdrawalPayload['mode'] = 'relayer' | 'paymaster'> extends PrivateOperation {
|
|
337
358
|
withdrawals: (IWithdrawalPayload & {
|
|
338
359
|
mode: Mode;
|
|
@@ -346,7 +367,7 @@ interface ITornadoArtifacts {
|
|
|
346
367
|
provingKey: ArrayBuffer;
|
|
347
368
|
}
|
|
348
369
|
type TCProtocolConfig = Omit<ProtocolConfigState, 'chainId'>;
|
|
349
|
-
interface
|
|
370
|
+
interface TCProtocolParams extends Pick<WorkerInitOptions, 'proverVersion'> {
|
|
350
371
|
accountIndex?: number;
|
|
351
372
|
paymasterConfig: IChainsPaymastersConfig;
|
|
352
373
|
secretManagerFactory: (params: SecretManagerParams) => Promise<ISecretManager>;
|
|
@@ -355,7 +376,6 @@ interface PrivacyPoolsV1ProtocolParams {
|
|
|
355
376
|
protocolConfig: TCProtocolConfig;
|
|
356
377
|
relayerConfig?: IRelayerFeeConfig;
|
|
357
378
|
artifactsLoader?: () => Promise<ITornadoArtifacts>;
|
|
358
|
-
proverFactory?: () => Promise<ITornadoProver>;
|
|
359
379
|
initialState?: () => Promise<Record<string, PublicRootState>>;
|
|
360
380
|
stateManagerWorkerUrl?: string;
|
|
361
381
|
}
|
|
@@ -411,12 +431,11 @@ type TCBroadcaster = Broadcaster<TCPrivateOperation, ITornadoWithdrawResponse[]>
|
|
|
411
431
|
interface TCBaseCredential {
|
|
412
432
|
accountIndex: number;
|
|
413
433
|
}
|
|
414
|
-
interface TCPluginParameters extends TCBroadcasterParameters, TCBaseCredential {
|
|
434
|
+
interface TCPluginParameters extends TCBroadcasterParameters, TCBaseCredential, Pick<TCProtocolParams, 'proverVersion' | 'initialState'> {
|
|
415
435
|
protocolConfig: TCProtocolConfig;
|
|
416
436
|
relayerConfig?: IRelayerFeeConfig;
|
|
417
|
-
initialState?: PrivacyPoolsV1ProtocolParams['initialState'];
|
|
418
|
-
artifacts: ITornadoArtifacts;
|
|
419
437
|
stateManagerWorkerUrl?: string;
|
|
438
|
+
artifactsLoader?: () => Promise<ITornadoArtifacts>;
|
|
420
439
|
}
|
|
421
440
|
type TCAddress = Address$1;
|
|
422
441
|
type TCAssetAmount<Tag extends string | undefined = undefined> = AssetAmount<ERC20AssetId, bigint, Tag>;
|
|
@@ -461,7 +480,7 @@ type RequireOnly<T, Keys extends keyof T> = Partial<T> & Pick<T, Keys>;
|
|
|
461
480
|
declare class TornadoCashProtocol implements TCInstance {
|
|
462
481
|
readonly host: Host;
|
|
463
482
|
private stateManager;
|
|
464
|
-
constructor(host: Host, { accountIndex, initialState, protocolConfig, artifactsLoader, stateManagerWorkerUrl, relayerConfig, paymasterConfig, relayerClientFactory }: RequireOnly<
|
|
483
|
+
constructor(host: Host, { accountIndex, initialState, protocolConfig, artifactsLoader, stateManagerWorkerUrl, relayerConfig, paymasterConfig, relayerClientFactory, proverVersion }: RequireOnly<TCProtocolParams, 'protocolConfig'>);
|
|
465
484
|
instanceId: () => Promise<"0x1">;
|
|
466
485
|
/**
|
|
467
486
|
* Only process supported assets or error out?
|
|
@@ -490,6 +509,19 @@ interface Nullifier {
|
|
|
490
509
|
}
|
|
491
510
|
|
|
492
511
|
declare const E_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
512
|
+
declare const TornadoPaymasterConfigs: {
|
|
513
|
+
readonly 11155111: {
|
|
514
|
+
readonly bundlerUrl: "https://public.pimlico.io/v2/11155111/rpc";
|
|
515
|
+
readonly entryPointAddress: "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108";
|
|
516
|
+
readonly paymasterAddress: "0xA0e2667AcdECb9bCDa6Fcf87638a962e2E9dB20D";
|
|
517
|
+
readonly poolsAccountsMap: {
|
|
518
|
+
readonly '0x8c4a04d872a6c1be37964a21ba3a138525dff50b': "0x8A70E3dE493B8599447013f08d8b35719C8ED0ec";
|
|
519
|
+
readonly '0x8cc930096b4df705a007c4a039bdfa1320ed2508': "0x191e3De3cF7f61de7EbEf4Bf45cfBA4f652d1C6e";
|
|
520
|
+
readonly '0x6921fd1a97441dd603a997ed6ddf388658daf754': "0x060d053A6595630851ab873d6C95401b0C964d26";
|
|
521
|
+
};
|
|
522
|
+
};
|
|
523
|
+
readonly 1: never;
|
|
524
|
+
};
|
|
493
525
|
declare const TornadoCashConfigs: {
|
|
494
526
|
readonly 1: {
|
|
495
527
|
readonly ensSubdomainKey: "mainnet-tornado";
|
|
@@ -525,4 +557,4 @@ declare const TornadoCashConfigs: {
|
|
|
525
557
|
};
|
|
526
558
|
};
|
|
527
559
|
|
|
528
|
-
export { type Commitment, DepositStrategy, E_ADDRESS, type ISecretManager, type Nullifier, SecretManager, type SecretManagerParams, type TCAddress, type TCAssetAmount, type TCAssetBalance, type TCBroadcaster, type TCBroadcasterParameters, type TCInstance, type TCPaymasterUnshieldOptions, type TCPluginParameters, type TCPrepareShieldOptions, type TCPrepareUnshieldOptions, type TCRelayerUnshieldOptions, TornadoCashConfigs, TornadoCashProtocol, createTCBroadcaster, createTCPlugin };
|
|
560
|
+
export { type Commitment, DepositStrategy, E_ADDRESS, type ISecretManager, type Nullifier, SecretManager, type SecretManagerParams, type TCAddress, type TCAssetAmount, type TCAssetBalance, type TCBroadcaster, type TCBroadcasterParameters, type TCInstance, type TCPaymasterUnshieldOptions, type TCPluginParameters, type TCPrepareShieldOptions, type TCPrepareUnshieldOptions, type TCRelayerUnshieldOptions, TornadoCashConfigs, TornadoCashProtocol, TornadoPaymasterConfigs, createTCBroadcaster, createTCPlugin };
|
package/dist/index.js
CHANGED
|
@@ -409,7 +409,7 @@ async function loadCircuitFiles(circuitUrl, provingKeyUrl) {
|
|
|
409
409
|
|
|
410
410
|
// src/utils/default-artifacts-loader.ts
|
|
411
411
|
var TC_CIRCUIT_URL = "https://raw.githubusercontent.com/tornadocash/tornado-cli/refs/heads/master/build/circuits/tornado.json";
|
|
412
|
-
var TC_PROVING_KEY_URL = "https://
|
|
412
|
+
var TC_PROVING_KEY_URL = "https://raw.githubusercontent.com/tornadocash/tornado-cli/refs/heads/master/build/circuits/tornadoProvingKey.bin";
|
|
413
413
|
var defaultArtifactsLoader = () => loadCircuitFiles(TC_CIRCUIT_URL, TC_PROVING_KEY_URL);
|
|
414
414
|
|
|
415
415
|
// src/plugin/base.ts
|
|
@@ -422,7 +422,8 @@ var TornadoCashProtocol = class {
|
|
|
422
422
|
stateManagerWorkerUrl,
|
|
423
423
|
relayerConfig,
|
|
424
424
|
paymasterConfig = TornadoPaymasterConfigs,
|
|
425
|
-
relayerClientFactory = () => new RelayerClient(host)
|
|
425
|
+
relayerClientFactory = () => new RelayerClient(host),
|
|
426
|
+
proverVersion
|
|
426
427
|
}) {
|
|
427
428
|
this.host = host;
|
|
428
429
|
this.stateManager = (async () => {
|
|
@@ -441,7 +442,7 @@ var TornadoCashProtocol = class {
|
|
|
441
442
|
proxy(host.storage),
|
|
442
443
|
proxy(initialState),
|
|
443
444
|
proxy(artifactsLoader),
|
|
444
|
-
{ protocolConfig, accountIndex, relayerConfig, paymasterConfig }
|
|
445
|
+
{ protocolConfig, accountIndex, relayerConfig, paymasterConfig, proverVersion }
|
|
445
446
|
),
|
|
446
447
|
workerReady
|
|
447
448
|
]);
|
|
@@ -580,10 +581,7 @@ var PaymasterBroadcaster = class _PaymasterBroadcaster {
|
|
|
580
581
|
async broadcast(withdrawals) {
|
|
581
582
|
const chainId = Number(await this.provider.getChainId());
|
|
582
583
|
const {
|
|
583
|
-
poolsAccountsMap: rawPoolsAccountsMap
|
|
584
|
-
bundlerUrl,
|
|
585
|
-
paymasterAddress,
|
|
586
|
-
entryPointAddress
|
|
584
|
+
poolsAccountsMap: rawPoolsAccountsMap
|
|
587
585
|
} = this.options[chainId];
|
|
588
586
|
const poolAcountsMap = new Map(
|
|
589
587
|
Object.entries(rawPoolsAccountsMap).map(([poolAccount, tornadoAccount]) => [
|
|
@@ -594,9 +592,6 @@ var PaymasterBroadcaster = class _PaymasterBroadcaster {
|
|
|
594
592
|
const results = await Promise.allSettled(
|
|
595
593
|
withdrawals.map((w) => _PaymasterBroadcaster.broadcastOne({
|
|
596
594
|
...w,
|
|
597
|
-
bundlerUrl,
|
|
598
|
-
paymasterAddress,
|
|
599
|
-
entryPointAddress,
|
|
600
595
|
accountAddress: poolAcountsMap.get(w.poolAddress)
|
|
601
596
|
}, this.provider))
|
|
602
597
|
);
|
|
@@ -775,4 +770,4 @@ function tcPath({ accountIndex, secretType, depositIndex }) {
|
|
|
775
770
|
return `${TORNADO_CASH_PATH}/${accountIndex}'/${_secretType}'/${depositIndex}'`;
|
|
776
771
|
}
|
|
777
772
|
|
|
778
|
-
export { DepositStrategy, E_ADDRESS, SecretManager, TornadoCashConfigs, TornadoCashProtocol, createTCBroadcaster, createTCPlugin };
|
|
773
|
+
export { DepositStrategy, E_ADDRESS, SecretManager, TornadoCashConfigs, TornadoCashProtocol, TornadoPaymasterConfigs, createTCBroadcaster, createTCPlugin };
|