@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 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 | IPaymasterWithdrawalPayload;
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 PrivacyPoolsV1ProtocolParams {
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<PrivacyPoolsV1ProtocolParams, 'protocolConfig'>);
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://github.com/tornadocash/tornado-cli/raw/refs/heads/master/build/circuits/tornadoProvingKey.bin";
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 };