@aztec/bot 0.0.1-commit.b655e406 → 0.0.1-commit.c0b82b2

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 (47) hide show
  1. package/dest/amm_bot.d.ts +6 -7
  2. package/dest/amm_bot.d.ts.map +1 -1
  3. package/dest/amm_bot.js +5 -1
  4. package/dest/base_bot.d.ts +6 -6
  5. package/dest/base_bot.d.ts.map +1 -1
  6. package/dest/base_bot.js +14 -15
  7. package/dest/bot.d.ts +6 -6
  8. package/dest/bot.d.ts.map +1 -1
  9. package/dest/bot.js +7 -4
  10. package/dest/config.d.ts +72 -57
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +43 -15
  13. package/dest/cross_chain_bot.d.ts +54 -0
  14. package/dest/cross_chain_bot.d.ts.map +1 -0
  15. package/dest/cross_chain_bot.js +140 -0
  16. package/dest/factory.d.ts +18 -26
  17. package/dest/factory.d.ts.map +1 -1
  18. package/dest/factory.js +175 -75
  19. package/dest/index.d.ts +2 -1
  20. package/dest/index.d.ts.map +1 -1
  21. package/dest/index.js +1 -0
  22. package/dest/interface.d.ts +1 -1
  23. package/dest/l1_to_l2_seeding.d.ts +8 -0
  24. package/dest/l1_to_l2_seeding.d.ts.map +1 -0
  25. package/dest/l1_to_l2_seeding.js +63 -0
  26. package/dest/rpc.d.ts +1 -1
  27. package/dest/runner.d.ts +3 -3
  28. package/dest/runner.d.ts.map +1 -1
  29. package/dest/runner.js +429 -31
  30. package/dest/store/bot_store.d.ts +30 -5
  31. package/dest/store/bot_store.d.ts.map +1 -1
  32. package/dest/store/bot_store.js +38 -7
  33. package/dest/store/index.d.ts +2 -2
  34. package/dest/store/index.d.ts.map +1 -1
  35. package/dest/utils.d.ts +1 -1
  36. package/package.json +19 -15
  37. package/src/amm_bot.ts +7 -7
  38. package/src/base_bot.ts +13 -27
  39. package/src/bot.ts +9 -8
  40. package/src/config.ts +90 -59
  41. package/src/cross_chain_bot.ts +209 -0
  42. package/src/factory.ts +198 -60
  43. package/src/index.ts +1 -0
  44. package/src/l1_to_l2_seeding.ts +79 -0
  45. package/src/runner.ts +18 -5
  46. package/src/store/bot_store.ts +61 -6
  47. package/src/store/index.ts +1 -1
package/dest/amm_bot.d.ts CHANGED
@@ -1,10 +1,9 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import { SentTx } from '@aztec/aztec.js/contracts';
3
- import { TxReceipt } from '@aztec/aztec.js/tx';
2
+ import { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
4
3
  import type { AMMContract } from '@aztec/noir-contracts.js/AMM';
5
4
  import type { TokenContract } from '@aztec/noir-contracts.js/Token';
6
5
  import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
7
- import type { TestWallet } from '@aztec/test-wallet/server';
6
+ import type { EmbeddedWallet } from '@aztec/wallets/embedded';
8
7
  import { BaseBot } from './base_bot.js';
9
8
  import type { BotConfig } from './config.js';
10
9
  import type { BotStore } from './store/index.js';
@@ -16,9 +15,9 @@ export declare class AmmBot extends BaseBot {
16
15
  readonly amm: AMMContract;
17
16
  readonly token0: TokenContract;
18
17
  readonly token1: TokenContract;
19
- protected constructor(node: AztecNode, wallet: TestWallet, defaultAccountAddress: AztecAddress, amm: AMMContract, token0: TokenContract, token1: TokenContract, config: BotConfig);
20
- static create(config: BotConfig, wallet: TestWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore): Promise<AmmBot>;
21
- protected createAndSendTx(logCtx: object): Promise<SentTx>;
18
+ protected constructor(node: AztecNode, wallet: EmbeddedWallet, defaultAccountAddress: AztecAddress, amm: AMMContract, token0: TokenContract, token1: TokenContract, config: BotConfig);
19
+ static create(config: BotConfig, wallet: EmbeddedWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore): Promise<AmmBot>;
20
+ protected createAndSendTx(logCtx: object): Promise<TxHash>;
22
21
  protected onTxMined(receipt: TxReceipt, logCtx: object): Promise<void>;
23
22
  getAmmBalances(): Promise<Balances>;
24
23
  getBalances(): Promise<{
@@ -30,4 +29,4 @@ export declare class AmmBot extends BaseBot {
30
29
  private getPrivateBalanceFor;
31
30
  }
32
31
  export {};
33
- //# sourceMappingURL=amm_bot.d.ts.map
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1tX2JvdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtbV9ib3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS2pELEtBQUssUUFBUSxHQUFHO0lBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDO0FBRW5ELHFCQUFhLE1BQU8sU0FBUSxPQUFPO2FBS2YsR0FBRyxFQUFFLFdBQVc7YUFDaEIsTUFBTSxFQUFFLGFBQWE7YUFDckIsTUFBTSxFQUFFLGFBQWE7SUFOdkMsU0FBUyxhQUNQLElBQUksRUFBRSxTQUFTLEVBQ2YsTUFBTSxFQUFFLGNBQWMsRUFDdEIscUJBQXFCLEVBQUUsWUFBWSxFQUNuQixHQUFHLEVBQUUsV0FBVyxFQUNoQixNQUFNLEVBQUUsYUFBYSxFQUNyQixNQUFNLEVBQUUsYUFBYSxFQUNyQyxNQUFNLEVBQUUsU0FBUyxFQUdsQjtJQUVELE9BQWEsTUFBTSxDQUNqQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsY0FBYyxFQUN0QixTQUFTLEVBQUUsU0FBUyxFQUNwQixjQUFjLEVBQUUsY0FBYyxHQUFHLFNBQVMsRUFDMUMsS0FBSyxFQUFFLFFBQVEsR0FDZCxPQUFPLENBQUMsTUFBTSxDQUFDLENBU2pCO0lBRUQsVUFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTBDL0Q7SUFFRCxVQUF5QixTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHcEY7SUFFTSxjQUFjLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUV6QztJQUVZLFdBQVcsSUFBSSxPQUFPLENBQUM7UUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO1FBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUFDLEdBQUcsRUFBRSxRQUFRLENBQUE7S0FBRSxDQUFDLENBTXRHO1lBRWEsbUJBQW1CO1lBTW5CLG9CQUFvQjtDQU1uQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"amm_bot.d.ts","sourceRoot":"","sources":["../src/amm_bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKjD,KAAK,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,qBAAa,MAAO,SAAQ,OAAO;aAKf,GAAG,EAAE,WAAW;aAChB,MAAM,EAAE,aAAa;aACrB,MAAM,EAAE,aAAa;IANvC,SAAS,aACP,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,UAAU,EAClB,qBAAqB,EAAE,YAAY,EACnB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrC,MAAM,EAAE,SAAS;WAKN,MAAM,CACjB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,MAAM,CAAC;cAWF,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cA4CvC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI7B,WAAW,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,QAAQ,CAAC;QAAC,aAAa,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,QAAQ,CAAA;KAAE,CAAC;YAQzF,mBAAmB;YAMnB,oBAAoB;CAMnC"}
1
+ {"version":3,"file":"amm_bot.d.ts","sourceRoot":"","sources":["../src/amm_bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKjD,KAAK,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,qBAAa,MAAO,SAAQ,OAAO;aAKf,GAAG,EAAE,WAAW;aAChB,MAAM,EAAE,aAAa;aACrB,MAAM,EAAE,aAAa;IANvC,SAAS,aACP,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,qBAAqB,EAAE,YAAY,EACnB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrC,MAAM,EAAE,SAAS,EAGlB;IAED,OAAa,MAAM,CACjB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,MAAM,CAAC,CASjB;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C/D;IAED,UAAyB,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;IAEM,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAEzC;IAEY,WAAW,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,QAAQ,CAAC;QAAC,aAAa,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,QAAQ,CAAA;KAAE,CAAC,CAMtG;YAEa,mBAAmB;YAMnB,oBAAoB;CAMnC"}
package/dest/amm_bot.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { NO_WAIT } from '@aztec/aztec.js/contracts';
1
2
  import { Fr } from '@aztec/aztec.js/fields';
2
3
  import { jsonStringify } from '@aztec/foundation/json-rpc';
3
4
  import { BaseBot } from './base_bot.js';
@@ -55,7 +56,10 @@ export class AmmBot extends BaseBot {
55
56
  ...logCtx,
56
57
  balances
57
58
  });
58
- return swapExactTokensInteraction.send(opts);
59
+ return swapExactTokensInteraction.send({
60
+ ...opts,
61
+ wait: NO_WAIT
62
+ });
59
63
  }
60
64
  async onTxMined(receipt, logCtx) {
61
65
  const balances = await this.getBalances();
@@ -1,21 +1,21 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import { BatchCall, ContractFunctionInteraction, type SendInteractionOptions, SentTx } from '@aztec/aztec.js/contracts';
2
+ import { BatchCall, ContractFunctionInteraction, type SendInteractionOptions } from '@aztec/aztec.js/contracts';
3
3
  import { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
4
4
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
5
- import type { TestWallet } from '@aztec/test-wallet/server';
5
+ import type { EmbeddedWallet } from '@aztec/wallets/embedded';
6
6
  import type { BotConfig } from './config.js';
7
7
  export declare abstract class BaseBot {
8
8
  readonly node: AztecNode;
9
- readonly wallet: TestWallet;
9
+ readonly wallet: EmbeddedWallet;
10
10
  readonly defaultAccountAddress: AztecAddress;
11
11
  config: BotConfig;
12
12
  protected log: import("@aztec/aztec.js/log").Logger;
13
13
  protected attempts: number;
14
14
  protected successes: number;
15
- protected constructor(node: AztecNode, wallet: TestWallet, defaultAccountAddress: AztecAddress, config: BotConfig);
15
+ protected constructor(node: AztecNode, wallet: EmbeddedWallet, defaultAccountAddress: AztecAddress, config: BotConfig);
16
16
  run(): Promise<TxReceipt | TxHash>;
17
- protected abstract createAndSendTx(logCtx: object): Promise<SentTx>;
17
+ protected abstract createAndSendTx(logCtx: object): Promise<TxHash>;
18
18
  protected onTxMined(_receipt: TxReceipt, _logCtx: object): Promise<void>;
19
19
  protected getSendMethodOpts(interaction: ContractFunctionInteraction | BatchCall): Promise<SendInteractionOptions>;
20
20
  }
21
- //# sourceMappingURL=base_bot.d.ts.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9ib3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlX2JvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSxLQUFLLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHaEgsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQVksTUFBTSxvQkFBb0IsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsOEJBQXNCLE9BQU87YUFPVCxJQUFJLEVBQUUsU0FBUzthQUNmLE1BQU0sRUFBRSxjQUFjO2FBQ3RCLHFCQUFxQixFQUFFLFlBQVk7SUFDNUMsTUFBTSxFQUFFLFNBQVM7SUFUMUIsU0FBUyxDQUFDLEdBQUcsdUNBQXVCO0lBRXBDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFLO0lBQy9CLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFLO0lBRWhDLFNBQVMsYUFDUyxJQUFJLEVBQUUsU0FBUyxFQUNmLE1BQU0sRUFBRSxjQUFjLEVBQ3RCLHFCQUFxQixFQUFFLFlBQVksRUFDNUMsTUFBTSxFQUFFLFNBQVMsRUFDdEI7SUFFUyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0F5QjlDO0lBRUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFcEUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUd2RTtJQUVELFVBQWdCLGlCQUFpQixDQUMvQixXQUFXLEVBQUUsMkJBQTJCLEdBQUcsU0FBUyxHQUNuRCxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FvQmpDO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"base_bot.d.ts","sourceRoot":"","sources":["../src/base_bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,SAAS,EACT,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,MAAM,EAEP,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,8BAAsB,OAAO;aAOT,IAAI,EAAE,SAAS;aACf,MAAM,EAAE,UAAU;aAClB,qBAAqB,EAAE,YAAY;IAC5C,MAAM,EAAE,SAAS;IAT1B,SAAS,CAAC,GAAG,uCAAuB;IAEpC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAK;IAC/B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAK;IAEhC,SAAS,aACS,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,UAAU,EAClB,qBAAqB,EAAE,YAAY,EAC5C,MAAM,EAAE,SAAS;IAGb,GAAG,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;IAoC/C,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAEnE,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAKxD,iBAAiB,CAC/B,WAAW,EAAE,2BAA2B,GAAG,SAAS,GACnD,OAAO,CAAC,sBAAsB,CAAC;CAqBnC"}
1
+ {"version":3,"file":"base_bot.d.ts","sourceRoot":"","sources":["../src/base_bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,2BAA2B,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGhH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAY,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,8BAAsB,OAAO;aAOT,IAAI,EAAE,SAAS;aACf,MAAM,EAAE,cAAc;aACtB,qBAAqB,EAAE,YAAY;IAC5C,MAAM,EAAE,SAAS;IAT1B,SAAS,CAAC,GAAG,uCAAuB;IAEpC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAK;IAC/B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAK;IAEhC,SAAS,aACS,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,qBAAqB,EAAE,YAAY,EAC5C,MAAM,EAAE,SAAS,EACtB;IAES,GAAG,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,CAyB9C;IAED,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpE,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;IAED,UAAgB,iBAAiB,CAC/B,WAAW,EAAE,2BAA2B,GAAG,SAAS,GACnD,OAAO,CAAC,sBAAsB,CAAC,CAoBjC;CACF"}
package/dest/base_bot.js CHANGED
@@ -1,5 +1,6 @@
1
- import { waitForProven } from '@aztec/aztec.js/contracts';
2
1
  import { createLogger } from '@aztec/aztec.js/log';
2
+ import { waitForTx } from '@aztec/aztec.js/node';
3
+ import { TxStatus } from '@aztec/aztec.js/tx';
3
4
  import { Gas } from '@aztec/stdlib/gas';
4
5
  export class BaseBot {
5
6
  node;
@@ -20,26 +21,24 @@ export class BaseBot {
20
21
  }
21
22
  async run() {
22
23
  this.attempts++;
24
+ const { followChain, txMinedWaitSeconds } = this.config;
23
25
  const logCtx = {
24
- runId: Date.now() * 1000 + Math.floor(Math.random() * 1000)
26
+ runId: Date.now() * 1000 + Math.floor(Math.random() * 1000),
27
+ followChain,
28
+ txMinedWaitSeconds
25
29
  };
26
- const { followChain, txMinedWaitSeconds } = this.config;
27
30
  this.log.verbose(`Creating tx`, logCtx);
28
- const tx = await this.createAndSendTx(logCtx);
29
- const txHash = await tx.getTxHash();
31
+ const txHash = await this.createAndSendTx(logCtx);
30
32
  if (followChain === 'NONE') {
31
33
  this.log.info(`Transaction ${txHash.toString()} sent, not waiting for it to be mined`);
32
34
  return txHash;
33
35
  }
34
- this.log.verbose(`Awaiting tx ${txHash.toString()} to be on the ${followChain} chain (timeout ${txMinedWaitSeconds}s)`, logCtx);
35
- const receipt = await tx.wait({
36
- timeout: txMinedWaitSeconds
36
+ const waitForStatus = TxStatus[followChain];
37
+ this.log.verbose(`Awaiting tx ${txHash.toString()} to be on the ${followChain} chain`, logCtx);
38
+ const receipt = await waitForTx(this.node, txHash, {
39
+ timeout: txMinedWaitSeconds,
40
+ waitForStatus
37
41
  });
38
- if (followChain === 'PROVEN') {
39
- await waitForProven(this.node, receipt, {
40
- provenTimeout: txMinedWaitSeconds
41
- });
42
- }
43
42
  this.successes++;
44
43
  this.log.info(`Tx #${this.attempts} ${receipt.txHash} successfully mined in block ${receipt.blockNumber} (stats: ${this.successes}/${this.attempts} success)`, logCtx);
45
44
  await this.onTxMined(receipt, logCtx);
@@ -50,8 +49,8 @@ export class BaseBot {
50
49
  return Promise.resolve();
51
50
  }
52
51
  async getSendMethodOpts(interaction) {
53
- const { l2GasLimit, daGasLimit, baseFeePadding } = this.config;
54
- this.wallet.setBaseFeePadding(baseFeePadding);
52
+ const { l2GasLimit, daGasLimit, minFeePadding } = this.config;
53
+ this.wallet.setMinFeePadding(minFeePadding);
55
54
  let gasSettings;
56
55
  if (l2GasLimit !== undefined && l2GasLimit > 0 && daGasLimit !== undefined && daGasLimit > 0) {
57
56
  gasSettings = {
package/dest/bot.d.ts CHANGED
@@ -1,19 +1,19 @@
1
1
  import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import { SentTx } from '@aztec/aztec.js/contracts';
2
+ import { TxHash } from '@aztec/aztec.js/tx';
3
3
  import type { PrivateTokenContract } from '@aztec/noir-contracts.js/PrivateToken';
4
4
  import type { TokenContract } from '@aztec/noir-contracts.js/Token';
5
5
  import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
6
- import type { TestWallet } from '@aztec/test-wallet/server';
6
+ import type { EmbeddedWallet } from '@aztec/wallets/embedded';
7
7
  import { BaseBot } from './base_bot.js';
8
8
  import type { BotConfig } from './config.js';
9
9
  import type { BotStore } from './store/index.js';
10
10
  export declare class Bot extends BaseBot {
11
11
  readonly token: TokenContract | PrivateTokenContract;
12
12
  readonly recipient: AztecAddress;
13
- protected constructor(node: AztecNode, wallet: TestWallet, defaultAccountAddress: AztecAddress, token: TokenContract | PrivateTokenContract, recipient: AztecAddress, config: BotConfig);
14
- static create(config: BotConfig, wallet: TestWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore): Promise<Bot>;
13
+ protected constructor(node: AztecNode, wallet: EmbeddedWallet, defaultAccountAddress: AztecAddress, token: TokenContract | PrivateTokenContract, recipient: AztecAddress, config: BotConfig);
14
+ static create(config: BotConfig, wallet: EmbeddedWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore): Promise<Bot>;
15
15
  updateConfig(config: Partial<BotConfig>): void;
16
- protected createAndSendTx(logCtx: object): Promise<SentTx>;
16
+ protected createAndSendTx(logCtx: object): Promise<TxHash>;
17
17
  getBalances(): Promise<{
18
18
  sender: {
19
19
  privateBalance: bigint;
@@ -25,4 +25,4 @@ export declare class Bot extends BaseBot {
25
25
  };
26
26
  }>;
27
27
  }
28
- //# sourceMappingURL=bot.d.ts.map
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QyxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUtqRCxxQkFBYSxHQUFJLFNBQVEsT0FBTzthQUtaLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CO2FBQzNDLFNBQVMsRUFBRSxZQUFZO0lBTHpDLFNBQVMsYUFDUCxJQUFJLEVBQUUsU0FBUyxFQUNmLE1BQU0sRUFBRSxjQUFjLEVBQ3RCLHFCQUFxQixFQUFFLFlBQVksRUFDbkIsS0FBSyxFQUFFLGFBQWEsR0FBRyxvQkFBb0IsRUFDM0MsU0FBUyxFQUFFLFlBQVksRUFDdkMsTUFBTSxFQUFFLFNBQVMsRUFHbEI7SUFFRCxPQUFhLE1BQU0sQ0FDakIsTUFBTSxFQUFFLFNBQVMsRUFDakIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsY0FBYyxFQUFFLGNBQWMsR0FBRyxTQUFTLEVBQzFDLEtBQUssRUFBRSxRQUFRLEdBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQVNkO0lBRU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBRzdDO0lBRUQsVUFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTRCL0Q7SUFFWSxXQUFXOzs7Ozs7Ozs7T0FrQnZCO0NBQ0YifQ==
package/dest/bot.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAa,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKjD,qBAAa,GAAI,SAAQ,OAAO;aAKZ,KAAK,EAAE,aAAa,GAAG,oBAAoB;aAC3C,SAAS,EAAE,YAAY;IALzC,SAAS,aACP,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,UAAU,EAClB,qBAAqB,EAAE,YAAY,EACnB,KAAK,EAAE,aAAa,GAAG,oBAAoB,EAC3C,SAAS,EAAE,YAAY,EACvC,MAAM,EAAE,SAAS;WAKN,MAAM,CACjB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,GAAG,CAAC;IAWR,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;cAK9B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BnD,WAAW;;;;;;;;;;CAmBzB"}
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKjD,qBAAa,GAAI,SAAQ,OAAO;aAKZ,KAAK,EAAE,aAAa,GAAG,oBAAoB;aAC3C,SAAS,EAAE,YAAY;IALzC,SAAS,aACP,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,qBAAqB,EAAE,YAAY,EACnB,KAAK,EAAE,aAAa,GAAG,oBAAoB,EAC3C,SAAS,EAAE,YAAY,EACvC,MAAM,EAAE,SAAS,EAGlB;IAED,OAAa,MAAM,CACjB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,GAAG,CAAC,CASd;IAEM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,QAG7C;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B/D;IAEY,WAAW;;;;;;;;;OAkBvB;CACF"}
package/dest/bot.js CHANGED
@@ -1,4 +1,4 @@
1
- import { BatchCall } from '@aztec/aztec.js/contracts';
1
+ import { BatchCall, NO_WAIT } from '@aztec/aztec.js/contracts';
2
2
  import { times } from '@aztec/foundation/collection';
3
3
  import { BaseBot } from './base_bot.js';
4
4
  import { BotFactory } from './factory.js';
@@ -36,13 +36,16 @@ export class Bot extends BaseBot {
36
36
  from: this.defaultAccountAddress
37
37
  });
38
38
  this.log.verbose(`Sending transaction`, logCtx);
39
- return batch.send(opts);
39
+ return batch.send({
40
+ ...opts,
41
+ wait: NO_WAIT
42
+ });
40
43
  }
41
44
  async getBalances() {
42
45
  if (isStandardTokenContract(this.token)) {
43
46
  return {
44
47
  sender: await getBalances(this.token, this.defaultAccountAddress),
45
- recipient: await getBalances(this.token, this.recipient, this.defaultAccountAddress)
48
+ recipient: await getBalances(this.token, this.recipient)
46
49
  };
47
50
  } else {
48
51
  return {
@@ -51,7 +54,7 @@ export class Bot extends BaseBot {
51
54
  publicBalance: 0n
52
55
  },
53
56
  recipient: {
54
- privateBalance: await getPrivateBalance(this.token, this.recipient, this.defaultAccountAddress),
57
+ privateBalance: await getPrivateBalance(this.token, this.recipient),
55
58
  publicBalance: 0n
56
59
  }
57
60
  };
package/dest/config.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { type DataStoreConfig } from '@aztec/kv-store/config';
4
- import { type ZodFor } from '@aztec/stdlib/schemas';
5
4
  import type { ComponentsVersions } from '@aztec/stdlib/versioning';
6
5
  import { z } from 'zod';
7
- declare const BotFollowChain: readonly ["NONE", "PENDING", "PROVEN"];
6
+ declare const BotFollowChain: readonly ["NONE", "PROPOSED", "CHECKPOINTED", "PROVEN"];
8
7
  type BotFollowChain = (typeof BotFollowChain)[number];
8
+ declare const BotMode: readonly ["transfer", "amm", "crosschain"];
9
+ type BotMode = (typeof BotMode)[number];
9
10
  export declare enum SupportedTokenContracts {
10
11
  TokenContract = "TokenContract",
11
12
  PrivateTokenContract = "PrivateTokenContract"
@@ -37,8 +38,8 @@ export type BotConfig = {
37
38
  publicTransfersPerTx: number;
38
39
  /** How to handle fee payments. */
39
40
  feePaymentMethod: 'fee_juice';
40
- /** 'How much is the bot willing to overpay vs. the current base fee' */
41
- baseFeePadding: number;
41
+ /** 'How much is the bot willing to overpay vs. the current min fee' */
42
+ minFeePadding: number;
42
43
  /** True to not automatically setup or start the bot on initialization. */
43
44
  noStart: boolean;
44
45
  /** How long to wait for a tx to be mined before reporting an error. */
@@ -59,8 +60,12 @@ export type BotConfig = {
59
60
  maxConsecutiveErrors: number;
60
61
  /** Stops the bot if service becomes unhealthy */
61
62
  stopWhenUnhealthy: boolean;
62
- /** Deploy an AMM contract and do swaps instead of transfers */
63
- ammTxs: boolean;
63
+ /** Bot mode: transfer, amm, or crosschain. */
64
+ botMode: BotMode;
65
+ /** Number of L2→L1 messages per tx (crosschain mode). */
66
+ l2ToL1MessagesPerTx: number;
67
+ /** Max L1→L2 messages to keep in-flight (crosschain mode). */
68
+ l1ToL2SeedCount: number;
64
69
  } & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'>;
65
70
  export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
66
71
  nodeUrl: z.ZodOptional<z.ZodString>;
@@ -70,16 +75,16 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
70
75
  l1PrivateKey: z.ZodOptional<z.ZodType<SecretValue<string>, any, any>>;
71
76
  l1ToL2MessageTimeoutSeconds: z.ZodNumber;
72
77
  senderPrivateKey: z.ZodOptional<z.ZodType<SecretValue<Fr>, any, any>>;
73
- senderSalt: z.ZodOptional<ZodFor<Fr>>;
74
- tokenSalt: ZodFor<Fr>;
78
+ senderSalt: z.ZodOptional<import("@aztec/stdlib/schemas").ZodFor<Fr>>;
79
+ tokenSalt: import("@aztec/stdlib/schemas").ZodFor<Fr>;
75
80
  txIntervalSeconds: z.ZodNumber;
76
81
  privateTransfersPerTx: z.ZodNumber;
77
82
  publicTransfersPerTx: z.ZodNumber;
78
83
  feePaymentMethod: z.ZodLiteral<"fee_juice">;
79
- baseFeePadding: z.ZodNumber;
84
+ minFeePadding: z.ZodNumber;
80
85
  noStart: z.ZodBoolean;
81
86
  txMinedWaitSeconds: z.ZodNumber;
82
- followChain: z.ZodEnum<["NONE", "PENDING", "PROVEN"]>;
87
+ followChain: z.ZodEnum<["NONE", "PROPOSED", "CHECKPOINTED", "PROVEN"]>;
83
88
  maxPendingTxs: z.ZodNumber;
84
89
  flushSetupTransactions: z.ZodBoolean;
85
90
  l2GasLimit: z.ZodOptional<z.ZodNumber>;
@@ -87,65 +92,71 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
87
92
  contract: z.ZodNativeEnum<typeof SupportedTokenContracts>;
88
93
  maxConsecutiveErrors: z.ZodNumber;
89
94
  stopWhenUnhealthy: z.ZodBoolean;
90
- ammTxs: z.ZodDefault<z.ZodBoolean>;
95
+ botMode: z.ZodDefault<z.ZodEnum<["transfer", "amm", "crosschain"]>>;
96
+ l2ToL1MessagesPerTx: z.ZodDefault<z.ZodNumber>;
97
+ l1ToL2SeedCount: z.ZodDefault<z.ZodNumber>;
91
98
  dataDirectory: z.ZodOptional<z.ZodString>;
92
99
  dataStoreMapSizeKb: z.ZodOptional<z.ZodNumber>;
93
100
  }, "strip", z.ZodTypeAny, {
101
+ nodeUrl?: string | undefined;
102
+ nodeAdminUrl?: string | undefined;
103
+ l1RpcUrls?: string[] | undefined;
104
+ l1Mnemonic?: SecretValue<string> | undefined;
105
+ l1PrivateKey?: SecretValue<string> | undefined;
94
106
  l1ToL2MessageTimeoutSeconds: number;
107
+ senderPrivateKey?: SecretValue<Fr> | undefined;
108
+ senderSalt?: Fr | undefined;
95
109
  tokenSalt: Fr;
96
110
  txIntervalSeconds: number;
97
111
  privateTransfersPerTx: number;
98
112
  publicTransfersPerTx: number;
99
113
  feePaymentMethod: "fee_juice";
100
- baseFeePadding: number;
114
+ minFeePadding: number;
101
115
  noStart: boolean;
102
116
  txMinedWaitSeconds: number;
103
- followChain: "NONE" | "PENDING" | "PROVEN";
117
+ followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
104
118
  maxPendingTxs: number;
105
119
  flushSetupTransactions: boolean;
120
+ l2GasLimit?: number | undefined;
121
+ daGasLimit?: number | undefined;
106
122
  contract: SupportedTokenContracts;
107
123
  maxConsecutiveErrors: number;
108
124
  stopWhenUnhealthy: boolean;
109
- ammTxs: boolean;
125
+ botMode: "amm" | "crosschain" | "transfer";
126
+ l2ToL1MessagesPerTx: number;
127
+ l1ToL2SeedCount: number;
110
128
  dataDirectory?: string | undefined;
111
129
  dataStoreMapSizeKb?: number | undefined;
130
+ }, {
112
131
  nodeUrl?: string | undefined;
113
132
  nodeAdminUrl?: string | undefined;
114
133
  l1RpcUrls?: string[] | undefined;
115
- l1Mnemonic?: SecretValue<string> | undefined;
116
- l1PrivateKey?: SecretValue<string> | undefined;
117
- senderPrivateKey?: SecretValue<Fr> | undefined;
118
- senderSalt?: Fr | undefined;
119
- l2GasLimit?: number | undefined;
120
- daGasLimit?: number | undefined;
121
- }, {
134
+ l1Mnemonic?: any;
135
+ l1PrivateKey?: any;
122
136
  l1ToL2MessageTimeoutSeconds: number;
137
+ senderPrivateKey?: any;
138
+ senderSalt?: any;
139
+ tokenSalt?: any;
123
140
  txIntervalSeconds: number;
124
141
  privateTransfersPerTx: number;
125
142
  publicTransfersPerTx: number;
126
143
  feePaymentMethod: "fee_juice";
127
- baseFeePadding: number;
144
+ minFeePadding: number;
128
145
  noStart: boolean;
129
146
  txMinedWaitSeconds: number;
130
- followChain: "NONE" | "PENDING" | "PROVEN";
147
+ followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
131
148
  maxPendingTxs: number;
132
149
  flushSetupTransactions: boolean;
150
+ l2GasLimit?: number | undefined;
151
+ daGasLimit?: number | undefined;
133
152
  contract: SupportedTokenContracts;
134
153
  maxConsecutiveErrors: number;
135
154
  stopWhenUnhealthy: boolean;
155
+ botMode?: "amm" | "crosschain" | "transfer" | undefined;
156
+ l2ToL1MessagesPerTx?: number | undefined;
157
+ l1ToL2SeedCount?: number | undefined;
136
158
  dataDirectory?: string | undefined;
137
159
  dataStoreMapSizeKb?: number | undefined;
138
- nodeUrl?: string | undefined;
139
- nodeAdminUrl?: string | undefined;
140
- l1RpcUrls?: string[] | undefined;
141
- l1Mnemonic?: any;
142
- l1PrivateKey?: any;
143
- senderPrivateKey?: any;
144
- senderSalt?: any;
145
- tokenSalt?: any;
146
- l2GasLimit?: number | undefined;
147
- daGasLimit?: number | undefined;
148
- ammTxs?: boolean | undefined;
149
160
  }>, {
150
161
  l1ToL2MessageTimeoutSeconds: number;
151
162
  tokenSalt: Fr;
@@ -153,59 +164,63 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
153
164
  privateTransfersPerTx: number;
154
165
  publicTransfersPerTx: number;
155
166
  feePaymentMethod: "fee_juice";
156
- baseFeePadding: number;
167
+ minFeePadding: number;
157
168
  noStart: boolean;
158
169
  txMinedWaitSeconds: number;
159
- followChain: "NONE" | "PENDING" | "PROVEN";
170
+ followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
160
171
  maxPendingTxs: number;
161
172
  flushSetupTransactions: boolean;
162
173
  contract: SupportedTokenContracts;
163
174
  maxConsecutiveErrors: number;
164
175
  stopWhenUnhealthy: boolean;
165
- ammTxs: boolean;
166
- dataDirectory: string | undefined;
167
- dataStoreMapSizeKb: number;
176
+ botMode: "amm" | "crosschain" | "transfer";
177
+ l2ToL1MessagesPerTx: number;
178
+ l1ToL2SeedCount: number;
168
179
  nodeUrl: string | undefined;
169
180
  nodeAdminUrl: string | undefined;
170
181
  l1RpcUrls: string[] | undefined;
171
- l1Mnemonic: SecretValue<string> | undefined;
172
- l1PrivateKey: SecretValue<string> | undefined;
173
- senderPrivateKey: SecretValue<Fr> | undefined;
174
182
  senderSalt: Fr | undefined;
175
183
  l2GasLimit: number | undefined;
176
184
  daGasLimit: number | undefined;
185
+ l1Mnemonic: SecretValue<string> | undefined;
186
+ l1PrivateKey: SecretValue<string> | undefined;
187
+ senderPrivateKey: SecretValue<Fr> | undefined;
188
+ dataDirectory: string | undefined;
189
+ dataStoreMapSizeKb: number;
177
190
  }, {
191
+ nodeUrl?: string | undefined;
192
+ nodeAdminUrl?: string | undefined;
193
+ l1RpcUrls?: string[] | undefined;
194
+ l1Mnemonic?: any;
195
+ l1PrivateKey?: any;
178
196
  l1ToL2MessageTimeoutSeconds: number;
197
+ senderPrivateKey?: any;
198
+ senderSalt?: any;
199
+ tokenSalt?: any;
179
200
  txIntervalSeconds: number;
180
201
  privateTransfersPerTx: number;
181
202
  publicTransfersPerTx: number;
182
203
  feePaymentMethod: "fee_juice";
183
- baseFeePadding: number;
204
+ minFeePadding: number;
184
205
  noStart: boolean;
185
206
  txMinedWaitSeconds: number;
186
- followChain: "NONE" | "PENDING" | "PROVEN";
207
+ followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
187
208
  maxPendingTxs: number;
188
209
  flushSetupTransactions: boolean;
210
+ l2GasLimit?: number | undefined;
211
+ daGasLimit?: number | undefined;
189
212
  contract: SupportedTokenContracts;
190
213
  maxConsecutiveErrors: number;
191
214
  stopWhenUnhealthy: boolean;
215
+ botMode?: "amm" | "crosschain" | "transfer" | undefined;
216
+ l2ToL1MessagesPerTx?: number | undefined;
217
+ l1ToL2SeedCount?: number | undefined;
192
218
  dataDirectory?: string | undefined;
193
219
  dataStoreMapSizeKb?: number | undefined;
194
- nodeUrl?: string | undefined;
195
- nodeAdminUrl?: string | undefined;
196
- l1RpcUrls?: string[] | undefined;
197
- l1Mnemonic?: any;
198
- l1PrivateKey?: any;
199
- senderPrivateKey?: any;
200
- senderSalt?: any;
201
- tokenSalt?: any;
202
- l2GasLimit?: number | undefined;
203
- daGasLimit?: number | undefined;
204
- ammTxs?: boolean | undefined;
205
220
  }>;
206
221
  export declare const botConfigMappings: ConfigMappingsType<BotConfig>;
207
222
  export declare function getBotConfigFromEnv(): BotConfig;
208
223
  export declare function getBotDefaultConfig(): BotConfig;
209
224
  export declare function getVersions(): Partial<ComponentsVersions>;
210
225
  export {};
211
- //# sourceMappingURL=config.d.ts.map
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBSWxGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixRQUFBLE1BQU0sY0FBYyx5REFBMEQsQ0FBQztBQUMvRSxLQUFLLGNBQWMsR0FBRyxDQUFDLE9BQU8sY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdEQsUUFBQSxNQUFNLE9BQU8sNENBQTZDLENBQUM7QUFDM0QsS0FBSyxPQUFPLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXhDLG9CQUFZLHVCQUF1QjtJQUNqQyxhQUFhLGtCQUFrQjtJQUMvQixvQkFBb0IseUJBQXlCO0NBQzlDO0FBRUQsTUFBTSxNQUFNLFNBQVMsR0FBRztJQUN0Qiw2REFBNkQ7SUFDN0QsT0FBTyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDNUIsNEVBQTRFO0lBQzVFLFlBQVksRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2pDLGdDQUFnQztJQUNoQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLGdFQUFnRTtJQUNoRSxVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM1QyxtRUFBbUU7SUFDbkUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDOUMsdUVBQXVFO0lBQ3ZFLDJCQUEyQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxrREFBa0Q7SUFDbEQsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM5Qyw2REFBNkQ7SUFDN0QsVUFBVSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDM0IsaURBQWlEO0lBQ2pELFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDZCxzREFBc0Q7SUFDdEQsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLDREQUE0RDtJQUM1RCxxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsMkRBQTJEO0lBQzNELG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixrQ0FBa0M7SUFDbEMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO0lBQzlCLHVFQUF1RTtJQUN2RSxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLDBFQUEwRTtJQUMxRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLHVFQUF1RTtJQUN2RSxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsNEVBQTRFO0lBQzVFLFdBQVcsRUFBRSxjQUFjLENBQUM7SUFDNUIsZ0ZBQWdGO0lBQ2hGLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsOERBQThEO0lBQzlELHNCQUFzQixFQUFFLE9BQU8sQ0FBQztJQUNoQywrRUFBK0U7SUFDL0UsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDL0IsK0VBQStFO0lBQy9FLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQy9CLDRCQUE0QjtJQUM1QixRQUFRLEVBQUUsdUJBQXVCLENBQUM7SUFDbEMseUVBQXlFO0lBQ3pFLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixpREFBaUQ7SUFDakQsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0lBQzNCLDhDQUE4QztJQUM5QyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLDJEQUF5RDtJQUN6RCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsZ0VBQThEO0lBQzlELGVBQWUsRUFBRSxNQUFNLENBQUM7Q0FDekIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxFLGVBQU8sTUFBTSxlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUErQzNCLENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQW1LM0QsQ0FBQztBQUVGLHdCQUFnQixtQkFBbUIsSUFBSSxTQUFTLENBRS9DO0FBRUQsd0JBQWdCLG1CQUFtQixJQUFJLFNBQVMsQ0FFL0M7QUFFRCx3QkFBZ0IsV0FBVyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUt6RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,WAAW,EASZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAIlF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,cAAc,yDAA0D,CAAC;AAC/E,KAAK,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,QAAA,MAAM,OAAO,4CAA6C,CAAC;AAC3D,KAAK,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAExC,oBAAY,uBAAuB;IACjC,aAAa,kBAAkB;IAC/B,oBAAoB,yBAAyB;CAC9C;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,4EAA4E;IAC5E,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gCAAgC;IAChC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAChC,gEAAgE;IAChE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5C,mEAAmE;IACnE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC9C,uEAAuE;IACvE,2BAA2B,EAAE,MAAM,CAAC;IACpC,kDAAkD;IAClD,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IAC9C,6DAA6D;IAC7D,UAAU,EAAE,EAAE,GAAG,SAAS,CAAC;IAC3B,iDAAiD;IACjD,SAAS,EAAE,EAAE,CAAC;IACd,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,gBAAgB,EAAE,WAAW,CAAC;IAC9B,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,WAAW,EAAE,cAAc,CAAC;IAC5B,gFAAgF;IAChF,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,sBAAsB,EAAE,OAAO,CAAC;IAChC,+EAA+E;IAC/E,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,+EAA+E;IAC/E,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,4BAA4B;IAC5B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,yEAAyE;IACzE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,2DAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gEAA8D;IAC9D,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+C3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAmK3D,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAKzD"}
package/dest/config.js CHANGED
@@ -1,21 +1,27 @@
1
1
  import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper, pickConfigMappings, secretFrConfigHelper, secretStringConfigHelper } from '@aztec/foundation/config';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { dataConfigMappings } from '@aztec/kv-store/config';
4
4
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
5
5
  import { protocolContractsHash } from '@aztec/protocol-contracts';
6
- import { schemas } from '@aztec/stdlib/schemas';
6
+ import { schemas, zodFor } from '@aztec/stdlib/schemas';
7
7
  import { z } from 'zod';
8
8
  const BotFollowChain = [
9
9
  'NONE',
10
- 'PENDING',
10
+ 'PROPOSED',
11
+ 'CHECKPOINTED',
11
12
  'PROVEN'
12
13
  ];
14
+ const BotMode = [
15
+ 'transfer',
16
+ 'amm',
17
+ 'crosschain'
18
+ ];
13
19
  export var SupportedTokenContracts = /*#__PURE__*/ function(SupportedTokenContracts) {
14
20
  SupportedTokenContracts["TokenContract"] = "TokenContract";
15
21
  SupportedTokenContracts["PrivateTokenContract"] = "PrivateTokenContract";
16
22
  return SupportedTokenContracts;
17
23
  }({});
18
- export const BotConfigSchema = z.object({
24
+ export const BotConfigSchema = zodFor()(z.object({
19
25
  nodeUrl: z.string().optional(),
20
26
  nodeAdminUrl: z.string().optional(),
21
27
  l1RpcUrls: z.array(z.string()).optional(),
@@ -29,7 +35,7 @@ export const BotConfigSchema = z.object({
29
35
  privateTransfersPerTx: z.number().int().nonnegative(),
30
36
  publicTransfersPerTx: z.number().int().nonnegative(),
31
37
  feePaymentMethod: z.literal('fee_juice'),
32
- baseFeePadding: z.number().int().nonnegative(),
38
+ minFeePadding: z.number().int().nonnegative(),
33
39
  noStart: z.boolean(),
34
40
  txMinedWaitSeconds: z.number(),
35
41
  followChain: z.enum(BotFollowChain),
@@ -40,7 +46,9 @@ export const BotConfigSchema = z.object({
40
46
  contract: z.nativeEnum(SupportedTokenContracts),
41
47
  maxConsecutiveErrors: z.number().int().nonnegative(),
42
48
  stopWhenUnhealthy: z.boolean(),
43
- ammTxs: z.boolean().default(false),
49
+ botMode: z.enum(BotMode).default('transfer'),
50
+ l2ToL1MessagesPerTx: z.number().int().nonnegative().default(1),
51
+ l1ToL2SeedCount: z.number().int().nonnegative().default(1),
44
52
  dataDirectory: z.string().optional(),
45
53
  dataStoreMapSizeKb: z.number().optional()
46
54
  }).transform((config)=>({
@@ -56,7 +64,7 @@ export const BotConfigSchema = z.object({
56
64
  dataDirectory: undefined,
57
65
  dataStoreMapSizeKb: 1_024 * 1_024,
58
66
  ...config
59
- }));
67
+ })));
60
68
  export const botConfigMappings = {
61
69
  nodeUrl: {
62
70
  env: 'AZTEC_NODE_URL',
@@ -123,8 +131,8 @@ export const botConfigMappings = {
123
131
  parseEnv: (val)=>val || undefined,
124
132
  defaultValue: 'fee_juice'
125
133
  },
126
- baseFeePadding: {
127
- env: 'BOT_BASE_FEE_PADDING',
134
+ minFeePadding: {
135
+ env: 'BOT_MIN_FEE_PADDING',
128
136
  description: 'How much is the bot willing to overpay vs. the current base fee',
129
137
  ...numberConfigHelper(3)
130
138
  },
@@ -143,10 +151,14 @@ export const botConfigMappings = {
143
151
  description: 'Which chain the bot follows',
144
152
  defaultValue: 'NONE',
145
153
  parseEnv (val) {
146
- if (!BotFollowChain.includes(val.toUpperCase())) {
154
+ const upper = val.toUpperCase();
155
+ if (upper === 'PENDING') {
156
+ return 'CHECKPOINTED';
157
+ }
158
+ if (!BotFollowChain.includes(upper)) {
147
159
  throw new Error(`Invalid value for BOT_FOLLOW_CHAIN: ${val}`);
148
160
  }
149
- return val;
161
+ return upper;
150
162
  }
151
163
  },
152
164
  maxPendingTxs: {
@@ -190,10 +202,26 @@ export const botConfigMappings = {
190
202
  description: 'Stops the bot if service becomes unhealthy',
191
203
  ...booleanConfigHelper(false)
192
204
  },
193
- ammTxs: {
194
- env: 'BOT_AMM_TXS',
195
- description: 'Deploy an AMM and send swaps to it',
196
- ...booleanConfigHelper(false)
205
+ botMode: {
206
+ env: 'BOT_MODE',
207
+ description: 'Bot mode: transfer, amm, or crosschain',
208
+ defaultValue: 'transfer',
209
+ parseEnv (val) {
210
+ if (!BotMode.includes(val)) {
211
+ throw new Error(`Invalid value for BOT_MODE: ${val}`);
212
+ }
213
+ return val;
214
+ }
215
+ },
216
+ l2ToL1MessagesPerTx: {
217
+ env: 'BOT_L2_TO_L1_MESSAGES_PER_TX',
218
+ description: 'Number of L2→L1 messages per tx (crosschain mode)',
219
+ ...numberConfigHelper(1)
220
+ },
221
+ l1ToL2SeedCount: {
222
+ env: 'BOT_L1_TO_L2_SEED_COUNT',
223
+ description: 'Max L1→L2 messages to keep in-flight (crosschain mode)',
224
+ ...numberConfigHelper(1)
197
225
  },
198
226
  ...pickConfigMappings(dataConfigMappings, [
199
227
  'dataStoreMapSizeKb',