@aztec/bot 0.0.1-commit.dbf9cec → 0.0.1-commit.e0f15ab9b

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/dest/amm_bot.d.ts CHANGED
@@ -29,4 +29,4 @@ export declare class AmmBot extends BaseBot {
29
29
  private getPrivateBalanceFor;
30
30
  }
31
31
  export {};
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1tX2JvdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtbV9ib3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS2pELEtBQUssUUFBUSxHQUFHO0lBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDO0FBRW5ELHFCQUFhLE1BQU8sU0FBUSxPQUFPO2FBS2YsR0FBRyxFQUFFLFdBQVc7YUFDaEIsTUFBTSxFQUFFLGFBQWE7YUFDckIsTUFBTSxFQUFFLGFBQWE7SUFOdkMsU0FBUyxhQUNQLElBQUksRUFBRSxTQUFTLEVBQ2YsTUFBTSxFQUFFLGNBQWMsRUFDdEIscUJBQXFCLEVBQUUsWUFBWSxFQUNuQixHQUFHLEVBQUUsV0FBVyxFQUNoQixNQUFNLEVBQUUsYUFBYSxFQUNyQixNQUFNLEVBQUUsYUFBYSxFQUNyQyxNQUFNLEVBQUUsU0FBUyxFQUdsQjtJQUVELE9BQWEsTUFBTSxDQUNqQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsY0FBYyxFQUN0QixTQUFTLEVBQUUsU0FBUyxFQUNwQixjQUFjLEVBQUUsY0FBYyxHQUFHLFNBQVMsRUFDMUMsS0FBSyxFQUFFLFFBQVEsR0FDZCxPQUFPLENBQUMsTUFBTSxDQUFDLENBU2pCO0lBRUQsVUFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTBDL0Q7SUFFRCxVQUF5QixTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHcEY7SUFFTSxjQUFjLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUV6QztJQUVZLFdBQVcsSUFBSSxPQUFPLENBQUM7UUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO1FBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUFDLEdBQUcsRUFBRSxRQUFRLENBQUE7S0FBRSxDQUFDLENBTXRHO1lBRWEsbUJBQW1CO1lBTW5CLG9CQUFvQjtDQU1uQyJ9
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1tX2JvdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtbV9ib3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS2pELEtBQUssUUFBUSxHQUFHO0lBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDO0FBRW5ELHFCQUFhLE1BQU8sU0FBUSxPQUFPO2FBS2YsR0FBRyxFQUFFLFdBQVc7YUFDaEIsTUFBTSxFQUFFLGFBQWE7YUFDckIsTUFBTSxFQUFFLGFBQWE7SUFOdkMsU0FBUyxhQUNQLElBQUksRUFBRSxTQUFTLEVBQ2YsTUFBTSxFQUFFLGNBQWMsRUFDdEIscUJBQXFCLEVBQUUsWUFBWSxFQUNuQixHQUFHLEVBQUUsV0FBVyxFQUNoQixNQUFNLEVBQUUsYUFBYSxFQUNyQixNQUFNLEVBQUUsYUFBYSxFQUNyQyxNQUFNLEVBQUUsU0FBUyxFQUdsQjtJQUVELE9BQWEsTUFBTSxDQUNqQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsY0FBYyxFQUN0QixTQUFTLEVBQUUsU0FBUyxFQUNwQixjQUFjLEVBQUUsY0FBYyxHQUFHLFNBQVMsRUFDMUMsS0FBSyxFQUFFLFFBQVEsR0FDZCxPQUFPLENBQUMsTUFBTSxDQUFDLENBU2pCO0lBRUQsVUFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTZDL0Q7SUFFRCxVQUF5QixTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHcEY7SUFFTSxjQUFjLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUV6QztJQUVZLFdBQVcsSUFBSSxPQUFPLENBQUM7UUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO1FBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUFDLEdBQUcsRUFBRSxRQUFRLENBQUE7S0FBRSxDQUFDLENBTXRHO1lBRWEsbUJBQW1CO1lBS25CLG9CQUFvQjtDQVNuQyJ9
@@ -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;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"}
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,CA6C/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;YAKnB,oBAAoB;CASnC"}
package/dest/amm_bot.js CHANGED
@@ -38,11 +38,13 @@ export class AmmBot extends BaseBot {
38
38
  caller: amm.address,
39
39
  call: await tokenIn.methods.transfer_to_public(this.defaultAccountAddress, amm.address, amountIn, authwitNonce).getFunctionCall()
40
40
  });
41
- const amountOutMin = await amm.methods.get_amount_out_for_exact_in(await tokenIn.methods.balance_of_public(amm.address).simulate({
41
+ const { result: tokenInBalance } = await tokenIn.methods.balance_of_public(amm.address).simulate({
42
42
  from: this.defaultAccountAddress
43
- }), await tokenOut.methods.balance_of_public(amm.address).simulate({
43
+ });
44
+ const { result: tokenOutBalance } = await tokenOut.methods.balance_of_public(amm.address).simulate({
44
45
  from: this.defaultAccountAddress
45
- }), amountIn).simulate({
46
+ });
47
+ const { result: amountOutMin } = await amm.methods.get_amount_out_for_exact_in(tokenInBalance, tokenOutBalance, amountIn).simulate({
46
48
  from: this.defaultAccountAddress
47
49
  });
48
50
  const swapExactTokensInteraction = amm.methods.swap_exact_tokens_for_tokens(tokenIn.address, tokenOut.address, amountIn, amountOutMin, authwitNonce).with({
@@ -56,10 +58,11 @@ export class AmmBot extends BaseBot {
56
58
  ...logCtx,
57
59
  balances
58
60
  });
59
- return swapExactTokensInteraction.send({
61
+ const { txHash } = await swapExactTokensInteraction.send({
60
62
  ...opts,
61
63
  wait: NO_WAIT
62
64
  });
65
+ return txHash;
63
66
  }
64
67
  async onTxMined(receipt, logCtx) {
65
68
  const balances = await this.getBalances();
@@ -79,23 +82,27 @@ export class AmmBot extends BaseBot {
79
82
  };
80
83
  }
81
84
  async getPublicBalanceFor(address, from) {
85
+ const { result: token0 } = await this.token0.methods.balance_of_public(address).simulate({
86
+ from: from ?? address
87
+ });
88
+ const { result: token1 } = await this.token1.methods.balance_of_public(address).simulate({
89
+ from: from ?? address
90
+ });
82
91
  return {
83
- token0: await this.token0.methods.balance_of_public(address).simulate({
84
- from: from ?? address
85
- }),
86
- token1: await this.token1.methods.balance_of_public(address).simulate({
87
- from: from ?? address
88
- })
92
+ token0,
93
+ token1
89
94
  };
90
95
  }
91
96
  async getPrivateBalanceFor(address, from) {
97
+ const { result: token0 } = await this.token0.methods.balance_of_private(address).simulate({
98
+ from: from ?? address
99
+ });
100
+ const { result: token1 } = await this.token1.methods.balance_of_private(address).simulate({
101
+ from: from ?? address
102
+ });
92
103
  return {
93
- token0: await this.token0.methods.balance_of_private(address).simulate({
94
- from: from ?? address
95
- }),
96
- token1: await this.token1.methods.balance_of_private(address).simulate({
97
- from: from ?? address
98
- })
104
+ token0,
105
+ token1
99
106
  };
100
107
  }
101
108
  }
package/dest/bot.d.ts CHANGED
@@ -25,4 +25,4 @@ export declare class Bot extends BaseBot {
25
25
  };
26
26
  }>;
27
27
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QyxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUtqRCxxQkFBYSxHQUFJLFNBQVEsT0FBTzthQUtaLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CO2FBQzNDLFNBQVMsRUFBRSxZQUFZO0lBTHpDLFNBQVMsYUFDUCxJQUFJLEVBQUUsU0FBUyxFQUNmLE1BQU0sRUFBRSxjQUFjLEVBQ3RCLHFCQUFxQixFQUFFLFlBQVksRUFDbkIsS0FBSyxFQUFFLGFBQWEsR0FBRyxvQkFBb0IsRUFDM0MsU0FBUyxFQUFFLFlBQVksRUFDdkMsTUFBTSxFQUFFLFNBQVMsRUFHbEI7SUFFRCxPQUFhLE1BQU0sQ0FDakIsTUFBTSxFQUFFLFNBQVMsRUFDakIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsY0FBYyxFQUFFLGNBQWMsR0FBRyxTQUFTLEVBQzFDLEtBQUssRUFBRSxRQUFRLEdBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQVNkO0lBRU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBRzdDO0lBRUQsVUFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTRCL0Q7SUFFWSxXQUFXOzs7Ozs7Ozs7T0FrQnZCO0NBQ0YifQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QyxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUtqRCxxQkFBYSxHQUFJLFNBQVEsT0FBTzthQUtaLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CO2FBQzNDLFNBQVMsRUFBRSxZQUFZO0lBTHpDLFNBQVMsYUFDUCxJQUFJLEVBQUUsU0FBUyxFQUNmLE1BQU0sRUFBRSxjQUFjLEVBQ3RCLHFCQUFxQixFQUFFLFlBQVksRUFDbkIsS0FBSyxFQUFFLGFBQWEsR0FBRyxvQkFBb0IsRUFDM0MsU0FBUyxFQUFFLFlBQVksRUFDdkMsTUFBTSxFQUFFLFNBQVMsRUFHbEI7SUFFRCxPQUFhLE1BQU0sQ0FDakIsTUFBTSxFQUFFLFNBQVMsRUFDakIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsY0FBYyxFQUFFLGNBQWMsR0FBRyxTQUFTLEVBQzFDLEtBQUssRUFBRSxRQUFRLEdBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQVNkO0lBRU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBRzdDO0lBRUQsVUFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTZCL0Q7SUFFWSxXQUFXOzs7Ozs7Ozs7T0FrQnZCO0NBQ0YifQ==
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;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"}
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,CA6B/D;IAEY,WAAW;;;;;;;;;OAkBvB;CACF"}
package/dest/bot.js CHANGED
@@ -36,10 +36,11 @@ export class Bot extends BaseBot {
36
36
  from: this.defaultAccountAddress
37
37
  });
38
38
  this.log.verbose(`Sending transaction`, logCtx);
39
- return batch.send({
39
+ const { txHash } = await batch.send({
40
40
  ...opts,
41
41
  wait: NO_WAIT
42
42
  });
43
+ return txHash;
43
44
  }
44
45
  async getBalances() {
45
46
  if (isStandardTokenContract(this.token)) {
package/dest/config.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { type DataStoreConfig } from '@aztec/kv-store/config';
3
+ import { type DataStoreConfig } from '@aztec/stdlib/kv-store';
4
4
  import type { ComponentsVersions } from '@aztec/stdlib/versioning';
5
5
  import { z } from 'zod';
6
6
  declare const BotFollowChain: readonly ["NONE", "PROPOSED", "CHECKPOINTED", "PROVEN"];
@@ -176,6 +176,7 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
176
176
  botMode: "amm" | "crosschain" | "transfer";
177
177
  l2ToL1MessagesPerTx: number;
178
178
  l1ToL2SeedCount: number;
179
+ dataDirectory?: string | undefined;
179
180
  nodeUrl: string | undefined;
180
181
  nodeAdminUrl: string | undefined;
181
182
  l1RpcUrls: string[] | undefined;
@@ -185,7 +186,6 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
185
186
  l1Mnemonic: SecretValue<string> | undefined;
186
187
  l1PrivateKey: SecretValue<string> | undefined;
187
188
  senderPrivateKey: SecretValue<Fr> | undefined;
188
- dataDirectory: string | undefined;
189
189
  dataStoreMapSizeKb: number;
190
190
  }, {
191
191
  nodeUrl?: string | undefined;
@@ -223,4 +223,4 @@ export declare function getBotConfigFromEnv(): BotConfig;
223
223
  export declare function getBotDefaultConfig(): BotConfig;
224
224
  export declare function getVersions(): Partial<ComponentsVersions>;
225
225
  export {};
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBSWxGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixRQUFBLE1BQU0sY0FBYyx5REFBMEQsQ0FBQztBQUMvRSxLQUFLLGNBQWMsR0FBRyxDQUFDLE9BQU8sY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdEQsUUFBQSxNQUFNLE9BQU8sNENBQTZDLENBQUM7QUFDM0QsS0FBSyxPQUFPLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXhDLG9CQUFZLHVCQUF1QjtJQUNqQyxhQUFhLGtCQUFrQjtJQUMvQixvQkFBb0IseUJBQXlCO0NBQzlDO0FBRUQsTUFBTSxNQUFNLFNBQVMsR0FBRztJQUN0Qiw2REFBNkQ7SUFDN0QsT0FBTyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDNUIsNEVBQTRFO0lBQzVFLFlBQVksRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2pDLGdDQUFnQztJQUNoQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLGdFQUFnRTtJQUNoRSxVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM1QyxtRUFBbUU7SUFDbkUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDOUMsdUVBQXVFO0lBQ3ZFLDJCQUEyQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxrREFBa0Q7SUFDbEQsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM5Qyw2REFBNkQ7SUFDN0QsVUFBVSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDM0IsaURBQWlEO0lBQ2pELFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDZCxzREFBc0Q7SUFDdEQsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLDREQUE0RDtJQUM1RCxxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsMkRBQTJEO0lBQzNELG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixrQ0FBa0M7SUFDbEMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO0lBQzlCLHVFQUF1RTtJQUN2RSxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLDBFQUEwRTtJQUMxRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLHVFQUF1RTtJQUN2RSxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsNEVBQTRFO0lBQzVFLFdBQVcsRUFBRSxjQUFjLENBQUM7SUFDNUIsZ0ZBQWdGO0lBQ2hGLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsOERBQThEO0lBQzlELHNCQUFzQixFQUFFLE9BQU8sQ0FBQztJQUNoQywrRUFBK0U7SUFDL0UsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDL0IsK0VBQStFO0lBQy9FLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQy9CLDRCQUE0QjtJQUM1QixRQUFRLEVBQUUsdUJBQXVCLENBQUM7SUFDbEMseUVBQXlFO0lBQ3pFLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixpREFBaUQ7SUFDakQsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0lBQzNCLDhDQUE4QztJQUM5QyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLDJEQUF5RDtJQUN6RCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsZ0VBQThEO0lBQzlELGVBQWUsRUFBRSxNQUFNLENBQUM7Q0FDekIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxFLGVBQU8sTUFBTSxlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUErQzNCLENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQW1LM0QsQ0FBQztBQUVGLHdCQUFnQixtQkFBbUIsSUFBSSxTQUFTLENBRS9DO0FBRUQsd0JBQWdCLG1CQUFtQixJQUFJLFNBQVMsQ0FFL0M7QUFFRCx3QkFBZ0IsV0FBVyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUt6RCJ9
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBRWxGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixRQUFBLE1BQU0sY0FBYyx5REFBMEQsQ0FBQztBQUMvRSxLQUFLLGNBQWMsR0FBRyxDQUFDLE9BQU8sY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdEQsUUFBQSxNQUFNLE9BQU8sNENBQTZDLENBQUM7QUFDM0QsS0FBSyxPQUFPLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXhDLG9CQUFZLHVCQUF1QjtJQUNqQyxhQUFhLGtCQUFrQjtJQUMvQixvQkFBb0IseUJBQXlCO0NBQzlDO0FBRUQsTUFBTSxNQUFNLFNBQVMsR0FBRztJQUN0Qiw2REFBNkQ7SUFDN0QsT0FBTyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDNUIsNEVBQTRFO0lBQzVFLFlBQVksRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2pDLGdDQUFnQztJQUNoQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLGdFQUFnRTtJQUNoRSxVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM1QyxtRUFBbUU7SUFDbkUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDOUMsdUVBQXVFO0lBQ3ZFLDJCQUEyQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxrREFBa0Q7SUFDbEQsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM5Qyw2REFBNkQ7SUFDN0QsVUFBVSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDM0IsaURBQWlEO0lBQ2pELFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDZCxzREFBc0Q7SUFDdEQsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLDREQUE0RDtJQUM1RCxxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsMkRBQTJEO0lBQzNELG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixrQ0FBa0M7SUFDbEMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO0lBQzlCLHVFQUF1RTtJQUN2RSxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLDBFQUEwRTtJQUMxRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLHVFQUF1RTtJQUN2RSxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsNEVBQTRFO0lBQzVFLFdBQVcsRUFBRSxjQUFjLENBQUM7SUFDNUIsZ0ZBQWdGO0lBQ2hGLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsOERBQThEO0lBQzlELHNCQUFzQixFQUFFLE9BQU8sQ0FBQztJQUNoQywrRUFBK0U7SUFDL0UsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDL0IsK0VBQStFO0lBQy9FLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQy9CLDRCQUE0QjtJQUM1QixRQUFRLEVBQUUsdUJBQXVCLENBQUM7SUFDbEMseUVBQXlFO0lBQ3pFLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixpREFBaUQ7SUFDakQsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0lBQzNCLDhDQUE4QztJQUM5QyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLDJEQUF5RDtJQUN6RCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsZ0VBQThEO0lBQzlELGVBQWUsRUFBRSxNQUFNLENBQUM7Q0FDekIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxFLGVBQU8sTUFBTSxlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE4QzNCLENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQW1LM0QsQ0FBQztBQUVGLHdCQUFnQixtQkFBbUIsSUFBSSxTQUFTLENBRS9DO0FBRUQsd0JBQWdCLG1CQUFtQixJQUFJLFNBQVMsQ0FFL0M7QUFFRCx3QkFBZ0IsV0FBVyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUt6RCJ9
@@ -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;AAGpD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAElF,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8C3B,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,8 +1,8 @@
1
1
  import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper, pickConfigMappings, secretFrConfigHelper, secretStringConfigHelper } from '@aztec/foundation/config';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { dataConfigMappings } from '@aztec/kv-store/config';
4
3
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
5
4
  import { protocolContractsHash } from '@aztec/protocol-contracts';
5
+ import { dataConfigMappings } from '@aztec/stdlib/kv-store';
6
6
  import { schemas, zodFor } from '@aztec/stdlib/schemas';
7
7
  import { z } from 'zod';
8
8
  const BotFollowChain = [
@@ -61,7 +61,6 @@ export const BotConfigSchema = zodFor()(z.object({
61
61
  l1Mnemonic: undefined,
62
62
  l1PrivateKey: undefined,
63
63
  senderPrivateKey: undefined,
64
- dataDirectory: undefined,
65
64
  dataStoreMapSizeKb: 1_024 * 1_024,
66
65
  ...config
67
66
  })));
@@ -51,4 +51,4 @@ export declare class CrossChainBot extends BaseBot {
51
51
  private getReadyL1ToL2Message;
52
52
  private seedNewL1ToL2Message;
53
53
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NfY2hhaW5fYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3Jvc3NfY2hhaW5fYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHN0MsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUF3QixNQUFNLGtCQUFrQixDQUFDO0FBS3ZFLHlFQUFxRTtBQUNyRSxxQkFBYSxhQUFjLFNBQVEsT0FBTztJQVN0QyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVE7SUFDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhO0lBQzlCLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSztJQWJ4QixPQUFPLENBQUMsVUFBVSxDQUFLO0lBQ3ZCLE9BQU8sQ0FBQyxjQUFjLENBQUs7SUFDM0IsT0FBTyxDQUFDLGtCQUFrQixDQUE0QjtJQUV0RCxTQUFTLGFBQ1AsSUFBSSxFQUFFLFNBQVMsRUFDZixNQUFNLEVBQUUsY0FBYyxFQUN0QixxQkFBcUIsRUFBRSxZQUFZLEVBQ2xCLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLFFBQVEsRUFBRSx3QkFBd0IsRUFDbEMsV0FBVyxFQUFFLFVBQVUsRUFDdkIsWUFBWSxFQUFFLFVBQVUsRUFDeEIsYUFBYSxFQUFFLE1BQU0sRUFDckIsS0FBSyxFQUFFLFFBQVEsRUFDaEMsTUFBTSxFQUFFLFNBQVMsRUFHbEI7SUFFRCxPQUFhLE1BQU0sQ0FDakIsTUFBTSxFQUFFLFNBQVMsRUFDakIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsY0FBYyxFQUFFLGNBQWMsR0FBRyxTQUFTLEVBQzFDLEtBQUssRUFBRSxRQUFRLEdBQ2QsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQXFCeEI7SUFFRCxVQUFnQixlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBZ0QvRDtJQUVELFVBQXlCLFNBQVMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXVCcEY7WUFHYSxxQkFBcUI7WUEyQnJCLG9CQUFvQjtDQVVuQyJ9
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NfY2hhaW5fYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3Jvc3NfY2hhaW5fYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHN0MsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUF3QixNQUFNLGtCQUFrQixDQUFDO0FBS3ZFLHlFQUFxRTtBQUNyRSxxQkFBYSxhQUFjLFNBQVEsT0FBTztJQVN0QyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVE7SUFDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhO0lBQzlCLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSztJQWJ4QixPQUFPLENBQUMsVUFBVSxDQUFLO0lBQ3ZCLE9BQU8sQ0FBQyxjQUFjLENBQUs7SUFDM0IsT0FBTyxDQUFDLGtCQUFrQixDQUE0QjtJQUV0RCxTQUFTLGFBQ1AsSUFBSSxFQUFFLFNBQVMsRUFDZixNQUFNLEVBQUUsY0FBYyxFQUN0QixxQkFBcUIsRUFBRSxZQUFZLEVBQ2xCLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLFFBQVEsRUFBRSx3QkFBd0IsRUFDbEMsV0FBVyxFQUFFLFVBQVUsRUFDdkIsWUFBWSxFQUFFLFVBQVUsRUFDeEIsYUFBYSxFQUFFLE1BQU0sRUFDckIsS0FBSyxFQUFFLFFBQVEsRUFDaEMsTUFBTSxFQUFFLFNBQVMsRUFHbEI7SUFFRCxPQUFhLE1BQU0sQ0FDakIsTUFBTSxFQUFFLFNBQVMsRUFDakIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsY0FBYyxFQUFFLGNBQWMsR0FBRyxTQUFTLEVBQzFDLEtBQUssRUFBRSxRQUFRLEdBQ2QsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQXFCeEI7SUFFRCxVQUFnQixlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBaUQvRDtJQUVELFVBQXlCLFNBQVMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXVCcEY7WUFHYSxxQkFBcUI7WUFvQnJCLG9CQUFvQjtDQVVuQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"cross_chain_bot.d.ts","sourceRoot":"","sources":["../src/cross_chain_bot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,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;AAG7C,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,kBAAkB,CAAC;AAKvE,yEAAqE;AACrE,qBAAa,aAAc,SAAQ,OAAO;IAStC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAbxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,kBAAkB,CAA4B;IAEtD,SAAS,aACP,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,qBAAqB,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,UAAU,EACvB,YAAY,EAAE,UAAU,EACxB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,QAAQ,EAChC,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,aAAa,CAAC,CAqBxB;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgD/D;IAED,UAAyB,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpF;YAGa,qBAAqB;YA2BrB,oBAAoB;CAUnC"}
1
+ {"version":3,"file":"cross_chain_bot.d.ts","sourceRoot":"","sources":["../src/cross_chain_bot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,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;AAG7C,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,kBAAkB,CAAC;AAKvE,yEAAqE;AACrE,qBAAa,aAAc,SAAQ,OAAO;IAStC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAbxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,kBAAkB,CAA4B;IAEtD,SAAS,aACP,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,qBAAqB,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,UAAU,EACvB,YAAY,EAAE,UAAU,EACxB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,QAAQ,EAChC,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,aAAa,CAAC,CAqBxB;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiD/D;IAED,UAAyB,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpF;YAGa,qBAAqB;YAoBrB,oBAAoB;CAUnC"}
@@ -84,10 +84,11 @@ import { seedL1ToL2Message } from './l1_to_l2_seeding.js';
84
84
  const batch = new BatchCall(this.wallet, calls);
85
85
  const opts = await this.getSendMethodOpts(batch);
86
86
  this.log.verbose(`Sending cross-chain batch with ${calls.length} calls`, logCtx);
87
- return batch.send({
87
+ const { txHash } = await batch.send({
88
88
  ...opts,
89
89
  wait: NO_WAIT
90
90
  });
91
+ return txHash;
91
92
  }
92
93
  async onTxMined(receipt, logCtx) {
93
94
  // Verify L2→L1 messages appeared in this tx's effects
@@ -115,14 +116,7 @@ import { seedL1ToL2Message } from './l1_to_l2_seeding.js';
115
116
  /** Finds the oldest pending message that is ready for consumption. */ async getReadyL1ToL2Message(pendingMessages) {
116
117
  const now = Date.now();
117
118
  for (const msg of pendingMessages){
118
- const ready = await isL1ToL2MessageReady(this.node, Fr.fromHexString(msg.msgHash), {
119
- // Use forPublicConsumption: false so we wait until blockNumber >= messageBlockNumber.
120
- // With forPublicConsumption: true, the check returns true one block early (the sequencer
121
- // includes L1→L2 messages before executing the block's txs), but gas estimation simulates
122
- // against the current world state which doesn't yet have the message.
123
- // See https://linear.app/aztec-labs/issue/A-548 for details.
124
- forPublicConsumption: false
125
- });
119
+ const ready = await isL1ToL2MessageReady(this.node, Fr.fromHexString(msg.msgHash));
126
120
  if (ready) {
127
121
  return msg;
128
122
  }
package/dest/factory.d.ts CHANGED
@@ -61,4 +61,4 @@ export declare class BotFactory {
61
61
  private bridgeL1FeeJuice;
62
62
  private withNoMinTxsPerBlock;
63
63
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBbUJ6RCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR2xFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUEyQixNQUFNLGFBQWEsQ0FBQztBQUV0RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU1qRCxxQkFBYSxVQUFVO0lBSW5CLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBQ3RCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQVBsQyxPQUFPLENBQUMsR0FBRyxDQUF1QjtJQUVsQyxZQUNtQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsY0FBYyxFQUN0QixLQUFLLEVBQUUsUUFBUSxFQUNmLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGNBQWMsQ0FBQyw0QkFBZ0IsRUFDOUM7SUFFSjs7O09BR0c7SUFDVSxLQUFLLElBQUksT0FBTyxDQUFDO1FBQzVCLE1BQU0sRUFBRSxjQUFjLENBQUM7UUFDdkIscUJBQXFCLEVBQUUsWUFBWSxDQUFDO1FBQ3BDLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7UUFDNUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUNoQixTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQ3pCLENBQUMsQ0FNRDtJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDL0IsTUFBTSxFQUFFLGNBQWMsQ0FBQztRQUN2QixxQkFBcUIsRUFBRSxZQUFZLENBQUM7UUFDcEMsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUNqQixNQUFNLEVBQUUsYUFBYSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDdEIsSUFBSSxFQUFFLFNBQVMsQ0FBQztLQUNqQixDQUFDLENBc0JEO0lBRUQ7OztPQUdHO0lBQ1UsZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUN0QyxNQUFNLEVBQUUsY0FBYyxDQUFDO1FBQ3ZCLHFCQUFxQixFQUFFLFlBQVksQ0FBQztRQUNwQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ3ZCLElBQUksRUFBRSxTQUFTLENBQUM7UUFDaEIsUUFBUSxFQUFFLHdCQUF3QixDQUFDO1FBQ25DLGFBQWEsRUFBRSxNQUFNLENBQUM7S0FDdkIsQ0FBQyxDQWdFRDtZQUVhLGlCQUFpQjtZQWVqQixZQUFZO1lBV1osMEJBQTBCO1lBeUMxQixnQkFBZ0I7WUFlaEIsVUFBVTtZQXNEVixrQkFBa0I7WUFhbEIsZ0JBQWdCO1lBc0JoQixPQUFPO1lBNkVQLHdCQUF3QjtZQTBCeEIsVUFBVTtZQTRDVixzQkFBc0I7WUE0QnRCLGdCQUFnQjtZQWdDaEIsb0JBQW9CO0NBZW5DIn0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBb0J6RCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR2xFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUEyQixNQUFNLGFBQWEsQ0FBQztBQUV0RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU1qRCxxQkFBYSxVQUFVO0lBSW5CLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBQ3RCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQVBsQyxPQUFPLENBQUMsR0FBRyxDQUF1QjtJQUVsQyxZQUNtQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsY0FBYyxFQUN0QixLQUFLLEVBQUUsUUFBUSxFQUNmLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGNBQWMsQ0FBQyw0QkFBZ0IsRUFLakQ7SUFFRDs7O09BR0c7SUFDVSxLQUFLLElBQUksT0FBTyxDQUFDO1FBQzVCLE1BQU0sRUFBRSxjQUFjLENBQUM7UUFDdkIscUJBQXFCLEVBQUUsWUFBWSxDQUFDO1FBQ3BDLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7UUFDNUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUNoQixTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQ3pCLENBQUMsQ0FNRDtJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDL0IsTUFBTSxFQUFFLGNBQWMsQ0FBQztRQUN2QixxQkFBcUIsRUFBRSxZQUFZLENBQUM7UUFDcEMsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUNqQixNQUFNLEVBQUUsYUFBYSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDdEIsSUFBSSxFQUFFLFNBQVMsQ0FBQztLQUNqQixDQUFDLENBc0JEO0lBRUQ7OztPQUdHO0lBQ1UsZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUN0QyxNQUFNLEVBQUUsY0FBYyxDQUFDO1FBQ3ZCLHFCQUFxQixFQUFFLFlBQVksQ0FBQztRQUNwQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ3ZCLElBQUksRUFBRSxTQUFTLENBQUM7UUFDaEIsUUFBUSxFQUFFLHdCQUF3QixDQUFDO1FBQ25DLGFBQWEsRUFBRSxNQUFNLENBQUM7S0FDdkIsQ0FBQyxDQTJERDtZQUVhLGlCQUFpQjtZQWVqQixZQUFZO1lBV1osMEJBQTBCO1lBOEMxQixnQkFBZ0I7WUFlaEIsVUFBVTtZQXVEVixrQkFBa0I7WUFhbEIsZ0JBQWdCO1lBK0JoQixPQUFPO1lBNEdQLHdCQUF3QjtZQTJCeEIsVUFBVTtZQW1EVixzQkFBc0I7WUEyQnRCLGdCQUFnQjtZQStCaEIsb0JBQW9CO0NBZW5DIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAmBzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAItE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMjD,qBAAa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAPlC,OAAO,CAAC,GAAG,CAAuB;IAElC,YACmB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,SAAS,EACpB,cAAc,CAAC,4BAAgB,EAC9C;IAEJ;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC;QAC5B,MAAM,EAAE,cAAc,CAAC;QACvB,qBAAqB,EAAE,YAAY,CAAC;QACpC,KAAK,EAAE,aAAa,GAAG,oBAAoB,CAAC;QAC5C,IAAI,EAAE,SAAS,CAAC;QAChB,SAAS,EAAE,YAAY,CAAC;KACzB,CAAC,CAMD;IAEY,QAAQ,IAAI,OAAO,CAAC;QAC/B,MAAM,EAAE,cAAc,CAAC;QACvB,qBAAqB,EAAE,YAAY,CAAC;QACpC,GAAG,EAAE,WAAW,CAAC;QACjB,MAAM,EAAE,aAAa,CAAC;QACtB,MAAM,EAAE,aAAa,CAAC;QACtB,IAAI,EAAE,SAAS,CAAC;KACjB,CAAC,CAsBD;IAED;;;OAGG;IACU,eAAe,IAAI,OAAO,CAAC;QACtC,MAAM,EAAE,cAAc,CAAC;QACvB,qBAAqB,EAAE,YAAY,CAAC;QACpC,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,SAAS,CAAC;QAChB,QAAQ,EAAE,wBAAwB,CAAC;QACnC,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAgED;YAEa,iBAAiB;YAejB,YAAY;YAWZ,0BAA0B;YAyC1B,gBAAgB;YAehB,UAAU;YAsDV,kBAAkB;YAalB,gBAAgB;YAsBhB,OAAO;YA6EP,wBAAwB;YA0BxB,UAAU;YA4CV,sBAAsB;YA4BtB,gBAAgB;YAgChB,oBAAoB;CAenC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAoBzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAItE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMjD,qBAAa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAPlC,OAAO,CAAC,GAAG,CAAuB;IAElC,YACmB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,SAAS,EACpB,cAAc,CAAC,4BAAgB,EAKjD;IAED;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC;QAC5B,MAAM,EAAE,cAAc,CAAC;QACvB,qBAAqB,EAAE,YAAY,CAAC;QACpC,KAAK,EAAE,aAAa,GAAG,oBAAoB,CAAC;QAC5C,IAAI,EAAE,SAAS,CAAC;QAChB,SAAS,EAAE,YAAY,CAAC;KACzB,CAAC,CAMD;IAEY,QAAQ,IAAI,OAAO,CAAC;QAC/B,MAAM,EAAE,cAAc,CAAC;QACvB,qBAAqB,EAAE,YAAY,CAAC;QACpC,GAAG,EAAE,WAAW,CAAC;QACjB,MAAM,EAAE,aAAa,CAAC;QACtB,MAAM,EAAE,aAAa,CAAC;QACtB,IAAI,EAAE,SAAS,CAAC;KACjB,CAAC,CAsBD;IAED;;;OAGG;IACU,eAAe,IAAI,OAAO,CAAC;QACtC,MAAM,EAAE,cAAc,CAAC;QACvB,qBAAqB,EAAE,YAAY,CAAC;QACpC,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,SAAS,CAAC;QAChB,QAAQ,EAAE,wBAAwB,CAAC;QACnC,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CA2DD;YAEa,iBAAiB;YAejB,YAAY;YAWZ,0BAA0B;YA8C1B,gBAAgB;YAehB,UAAU;YAuDV,kBAAkB;YAalB,gBAAgB;YA+BhB,OAAO;YA4GP,wBAAwB;YA2BxB,UAAU;YAmDV,sBAAsB;YA2BtB,gBAAgB;YA+BhB,oBAAoB;CAenC"}
package/dest/factory.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getInitialTestAccountsData } from '@aztec/accounts/testing';
2
- import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import { NO_FROM } from '@aztec/aztec.js/account';
3
3
  import { BatchCall, NO_WAIT } from '@aztec/aztec.js/contracts';
4
4
  import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
5
5
  import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
@@ -7,6 +7,7 @@ import { deriveKeys } from '@aztec/aztec.js/keys';
7
7
  import { createLogger } from '@aztec/aztec.js/log';
8
8
  import { waitForL1ToL2MessageReady } from '@aztec/aztec.js/messaging';
9
9
  import { waitForTx } from '@aztec/aztec.js/node';
10
+ import { ContractInitializationStatus } from '@aztec/aztec.js/wallet';
10
11
  import { createEthereumChain } from '@aztec/ethereum/chain';
11
12
  import { createExtendedL1Client } from '@aztec/ethereum/client';
12
13
  import { RollupContract } from '@aztec/ethereum/contracts';
@@ -17,7 +18,7 @@ import { AMMContract } from '@aztec/noir-contracts.js/AMM';
17
18
  import { PrivateTokenContract } from '@aztec/noir-contracts.js/PrivateToken';
18
19
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
19
20
  import { TestContract } from '@aztec/noir-test-contracts.js/Test';
20
- import { GasSettings } from '@aztec/stdlib/gas';
21
+ import { GasFees, GasSettings } from '@aztec/stdlib/gas';
21
22
  import { deriveSigningKey } from '@aztec/stdlib/keys';
22
23
  import { SupportedTokenContracts } from './config.js';
23
24
  import { seedL1ToL2Message } from './l1_to_l2_seeding.js';
@@ -38,6 +39,9 @@ export class BotFactory {
38
39
  this.aztecNode = aztecNode;
39
40
  this.aztecNodeAdmin = aztecNodeAdmin;
40
41
  this.log = createLogger('bot');
42
+ // Set fee padding on the wallet so that all transactions during setup
43
+ // (token deploy, minting, etc.) use the configured padding, not the default.
44
+ this.wallet.setMinFeePadding(config.minFeePadding);
41
45
  }
42
46
  /**
43
47
  * Initializes a new bot by setting up the sender account, registering the recipient,
@@ -108,12 +112,7 @@ export class BotFactory {
108
112
  this.log.info(`Waiting for first L1→L2 message to be ready...`);
109
113
  const firstMsg = allMessages[0];
110
114
  await waitForL1ToL2MessageReady(this.aztecNode, Fr.fromHexString(firstMsg.msgHash), {
111
- timeoutSeconds: this.config.l1ToL2MessageTimeoutSeconds,
112
- // Use forPublicConsumption: false so we wait until the message is in the current world
113
- // state. With true, it returns one block early which causes gas estimation simulation to
114
- // fail since it runs against the current state.
115
- // See https://linear.app/aztec-labs/issue/A-548 for details.
116
- forPublicConsumption: false
115
+ timeoutSeconds: this.config.l1ToL2MessageTimeoutSeconds
117
116
  });
118
117
  this.log.info(`First L1→L2 message is ready`);
119
118
  }
@@ -154,7 +153,7 @@ export class BotFactory {
154
153
  const signingKey = deriveSigningKey(secret);
155
154
  const accountManager = await this.wallet.createSchnorrAccount(secret, salt, signingKey);
156
155
  const metadata = await this.wallet.getContractMetadata(accountManager.address);
157
- if (metadata.isContractInitialized) {
156
+ if (metadata.initializationStatus === ContractInitializationStatus.INITIALIZED) {
158
157
  this.log.info(`Account at ${accountManager.address.toString()} already initialized`);
159
158
  const timer = new Timer();
160
159
  const address = accountManager.address;
@@ -168,19 +167,30 @@ export class BotFactory {
168
167
  const paymentMethod = new FeeJuicePaymentMethodWithClaim(accountManager.address, claim);
169
168
  const deployMethod = await accountManager.getDeployMethod();
170
169
  const maxFeesPerGas = (await this.aztecNode.getCurrentMinFees()).mul(1 + this.config.minFeePadding);
171
- const gasSettings = GasSettings.default({
172
- maxFeesPerGas
170
+ const { estimatedGas } = await deployMethod.simulate({
171
+ from: NO_FROM,
172
+ fee: {
173
+ estimateGas: true,
174
+ paymentMethod
175
+ }
176
+ });
177
+ const gasSettings = GasSettings.from({
178
+ ...estimatedGas,
179
+ maxFeesPerGas,
180
+ maxPriorityFeesPerGas: GasFees.empty()
173
181
  });
174
182
  await this.withNoMinTxsPerBlock(async ()=>{
175
- const txHash = await deployMethod.send({
176
- from: AztecAddress.ZERO,
183
+ const { txHash } = await deployMethod.send({
184
+ from: NO_FROM,
177
185
  fee: {
178
186
  gasSettings,
179
187
  paymentMethod
180
188
  },
181
189
  wait: NO_WAIT
182
190
  });
183
- this.log.info(`Sent tx for account deployment with hash ${txHash.toString()}`);
191
+ this.log.info(`Sent tx for account deployment with hash ${txHash.toString()}`, {
192
+ gasSettings
193
+ });
184
194
  return waitForTx(this.aztecNode, txHash, {
185
195
  timeout: this.config.txMinedWaitSeconds
186
196
  });
@@ -239,11 +249,22 @@ export class BotFactory {
239
249
  await deploy.register();
240
250
  } else {
241
251
  this.log.info(`Deploying token contract at ${address.toString()}`);
242
- const txHash = await deploy.send({
252
+ const { estimatedGas } = await deploy.simulate({
253
+ ...deployOpts,
254
+ fee: {
255
+ estimateGas: true
256
+ }
257
+ });
258
+ const { txHash } = await deploy.send({
243
259
  ...deployOpts,
260
+ fee: {
261
+ gasSettings: estimatedGas
262
+ },
244
263
  wait: NO_WAIT
245
264
  });
246
- this.log.info(`Sent tx for token setup with hash ${txHash.toString()}`);
265
+ this.log.info(`Sent tx for token setup with hash ${txHash.toString()}`, {
266
+ estimatedGas
267
+ });
247
268
  await this.withNoMinTxsPerBlock(async ()=>{
248
269
  await waitForTx(this.aztecNode, txHash, {
249
270
  timeout: this.config.txMinedWaitSeconds
@@ -277,13 +298,25 @@ export class BotFactory {
277
298
  const instance = await this.registerOrDeployContract('AMM', deploy, deployOpts);
278
299
  const amm = AMMContract.at(instance.address, this.wallet);
279
300
  this.log.info(`AMM deployed at ${amm.address}`);
280
- const minterReceipt = await lpToken.methods.set_minter(amm.address, true).send({
301
+ const setMinterInteraction = lpToken.methods.set_minter(amm.address, true);
302
+ const { estimatedGas: setMinterGas } = await setMinterInteraction.simulate({
281
303
  from: deployer,
304
+ fee: {
305
+ estimateGas: true
306
+ }
307
+ });
308
+ const { receipt: minterReceipt } = await setMinterInteraction.send({
309
+ from: deployer,
310
+ fee: {
311
+ gasSettings: setMinterGas
312
+ },
282
313
  wait: {
283
314
  timeout: this.config.txMinedWaitSeconds
284
315
  }
285
316
  });
286
- this.log.info(`Set LP token minter to AMM txHash=${minterReceipt.txHash.toString()}`);
317
+ this.log.info(`Set LP token minter to AMM txHash=${minterReceipt.txHash.toString()}`, {
318
+ estimatedGas: setMinterGas
319
+ });
287
320
  this.log.info(`Liquidity token initialized`);
288
321
  return amm;
289
322
  }
@@ -291,13 +324,13 @@ export class BotFactory {
291
324
  const getPrivateBalances = ()=>Promise.all([
292
325
  token0.methods.balance_of_private(liquidityProvider).simulate({
293
326
  from: liquidityProvider
294
- }),
327
+ }).then((r)=>r.result),
295
328
  token1.methods.balance_of_private(liquidityProvider).simulate({
296
329
  from: liquidityProvider
297
- }),
330
+ }).then((r)=>r.result),
298
331
  lpToken.methods.balance_of_private(liquidityProvider).simulate({
299
332
  from: liquidityProvider
300
- })
333
+ }).then((r)=>r.result)
301
334
  ]);
302
335
  const authwitNonce = Fr.random();
303
336
  // keep some tokens for swapping
@@ -316,18 +349,44 @@ export class BotFactory {
316
349
  caller: amm.address,
317
350
  call: await token1.methods.transfer_to_public_and_prepare_private_balance_increase(liquidityProvider, amm.address, amount1Max, authwitNonce).getFunctionCall()
318
351
  });
319
- const mintReceipt = await new BatchCall(this.wallet, [
352
+ const mintBatch = new BatchCall(this.wallet, [
320
353
  token0.methods.mint_to_private(liquidityProvider, MINT_BALANCE),
321
354
  token1.methods.mint_to_private(liquidityProvider, MINT_BALANCE)
322
- ]).send({
355
+ ]);
356
+ const { estimatedGas: mintGas } = await mintBatch.simulate({
357
+ from: liquidityProvider,
358
+ fee: {
359
+ estimateGas: true
360
+ }
361
+ });
362
+ const { receipt: mintReceipt } = await mintBatch.send({
323
363
  from: liquidityProvider,
364
+ fee: {
365
+ gasSettings: mintGas
366
+ },
324
367
  wait: {
325
368
  timeout: this.config.txMinedWaitSeconds
326
369
  }
327
370
  });
328
- this.log.info(`Sent mint tx: ${mintReceipt.txHash.toString()}`);
329
- const addLiquidityReceipt = await amm.methods.add_liquidity(amount0Max, amount1Max, amount0Min, amount1Min, authwitNonce).send({
371
+ this.log.info(`Sent mint tx: ${mintReceipt.txHash.toString()}`, {
372
+ estimatedGas: mintGas
373
+ });
374
+ const addLiquidityInteraction = amm.methods.add_liquidity(amount0Max, amount1Max, amount0Min, amount1Min, authwitNonce);
375
+ const { estimatedGas: addLiquidityGas } = await addLiquidityInteraction.simulate({
330
376
  from: liquidityProvider,
377
+ fee: {
378
+ estimateGas: true
379
+ },
380
+ authWitnesses: [
381
+ token0Authwit,
382
+ token1Authwit
383
+ ]
384
+ });
385
+ const { receipt: addLiquidityReceipt } = await addLiquidityInteraction.send({
386
+ from: liquidityProvider,
387
+ fee: {
388
+ gasSettings: addLiquidityGas
389
+ },
331
390
  authWitnesses: [
332
391
  token0Authwit,
333
392
  token1Authwit
@@ -336,7 +395,9 @@ export class BotFactory {
336
395
  timeout: this.config.txMinedWaitSeconds
337
396
  }
338
397
  });
339
- this.log.info(`Sent tx to add liquidity to the AMM: ${addLiquidityReceipt.txHash.toString()}`);
398
+ this.log.info(`Sent tx to add liquidity to the AMM: ${addLiquidityReceipt.txHash.toString()}`, {
399
+ estimatedGas: addLiquidityGas
400
+ });
340
401
  this.log.info(`Liquidity added`);
341
402
  const [newT0Bal, newT1Bal, newLPBal] = await getPrivateBalances();
342
403
  this.log.info(`Updated private balances of ${defaultAccountAddress} after minting and funding AMM: token0=${newT0Bal}, token1=${newT1Bal}, lp=${newLPBal}`);
@@ -349,10 +410,21 @@ export class BotFactory {
349
410
  this.log.info(`Contract ${name} at ${address.toString()} already deployed`);
350
411
  await deploy.register();
351
412
  } else {
352
- this.log.info(`Deploying contract ${name} at ${address.toString()}`);
413
+ const { estimatedGas } = await deploy.simulate({
414
+ ...deployOpts,
415
+ fee: {
416
+ estimateGas: true
417
+ }
418
+ });
419
+ this.log.info(`Deploying contract ${name} at ${address.toString()}`, {
420
+ estimatedGas
421
+ });
353
422
  await this.withNoMinTxsPerBlock(async ()=>{
354
- const txHash = await deploy.send({
423
+ const { txHash } = await deploy.send({
355
424
  ...deployOpts,
425
+ fee: {
426
+ gasSettings: estimatedGas
427
+ },
356
428
  wait: NO_WAIT
357
429
  });
358
430
  this.log.info(`Sent contract ${name} setup tx with hash ${txHash.toString()}`);
@@ -392,13 +464,26 @@ export class BotFactory {
392
464
  const additionalScopes = isStandardToken ? undefined : [
393
465
  token.address
394
466
  ];
467
+ const mintBatch = new BatchCall(token.wallet, calls);
468
+ const { estimatedGas } = await mintBatch.simulate({
469
+ from: minter,
470
+ fee: {
471
+ estimateGas: true
472
+ },
473
+ additionalScopes
474
+ });
395
475
  await this.withNoMinTxsPerBlock(async ()=>{
396
- const txHash = await new BatchCall(token.wallet, calls).send({
476
+ const { txHash } = await mintBatch.send({
397
477
  from: minter,
398
478
  additionalScopes,
479
+ fee: {
480
+ gasSettings: estimatedGas
481
+ },
399
482
  wait: NO_WAIT
400
483
  });
401
- this.log.info(`Sent token mint tx with hash ${txHash.toString()}`);
484
+ this.log.info(`Sent token mint tx with hash ${txHash.toString()}`, {
485
+ estimatedGas
486
+ });
402
487
  return waitForTx(this.aztecNode, txHash, {
403
488
  timeout: this.config.txMinedWaitSeconds
404
489
  });
@@ -417,8 +502,7 @@ export class BotFactory {
417
502
  try {
418
503
  const messageHash = Fr.fromHexString(existingClaim.claim.messageHash);
419
504
  await this.withNoMinTxsPerBlock(()=>waitForL1ToL2MessageReady(this.aztecNode, messageHash, {
420
- timeoutSeconds: this.config.l1ToL2MessageTimeoutSeconds,
421
- forPublicConsumption: false
505
+ timeoutSeconds: this.config.l1ToL2MessageTimeoutSeconds
422
506
  }));
423
507
  return existingClaim.claim;
424
508
  } catch (err) {
@@ -446,8 +530,7 @@ export class BotFactory {
446
530
  const mintAmount = await portal.getTokenManager().getMintAmount();
447
531
  const claim = await portal.bridgeTokensPublic(recipient, mintAmount, true);
448
532
  await this.withNoMinTxsPerBlock(()=>waitForL1ToL2MessageReady(this.aztecNode, Fr.fromHexString(claim.messageHash), {
449
- timeoutSeconds: this.config.l1ToL2MessageTimeoutSeconds,
450
- forPublicConsumption: false
533
+ timeoutSeconds: this.config.l1ToL2MessageTimeoutSeconds
451
534
  }));
452
535
  this.log.info(`Created a claim for ${mintAmount} L1 fee juice to ${recipient}.`, claim);
453
536
  return claim;
package/dest/utils.js CHANGED
@@ -4,10 +4,10 @@
4
4
  * @param who - Address to get the balance for.
5
5
  * @returns - Private and public token balances as bigints.
6
6
  */ export async function getBalances(token, who, from) {
7
- const privateBalance = await token.methods.balance_of_private(who).simulate({
7
+ const { result: privateBalance } = await token.methods.balance_of_private(who).simulate({
8
8
  from: from ?? who
9
9
  });
10
- const publicBalance = await token.methods.balance_of_public(who).simulate({
10
+ const { result: publicBalance } = await token.methods.balance_of_public(who).simulate({
11
11
  from: from ?? who
12
12
  });
13
13
  return {
@@ -16,7 +16,7 @@
16
16
  };
17
17
  }
18
18
  export async function getPrivateBalance(token, who, from) {
19
- const privateBalance = await token.methods.get_balance(who).simulate({
19
+ const { result: privateBalance } = await token.methods.get_balance(who).simulate({
20
20
  from: from ?? who
21
21
  });
22
22
  return privateBalance;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/bot",
3
- "version": "0.0.1-commit.dbf9cec",
3
+ "version": "0.0.1-commit.e0f15ab9b",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -54,20 +54,20 @@
54
54
  ]
55
55
  },
56
56
  "dependencies": {
57
- "@aztec/accounts": "0.0.1-commit.dbf9cec",
58
- "@aztec/aztec.js": "0.0.1-commit.dbf9cec",
59
- "@aztec/entrypoints": "0.0.1-commit.dbf9cec",
60
- "@aztec/ethereum": "0.0.1-commit.dbf9cec",
61
- "@aztec/foundation": "0.0.1-commit.dbf9cec",
62
- "@aztec/kv-store": "0.0.1-commit.dbf9cec",
63
- "@aztec/l1-artifacts": "0.0.1-commit.dbf9cec",
64
- "@aztec/noir-contracts.js": "0.0.1-commit.dbf9cec",
65
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.dbf9cec",
66
- "@aztec/noir-test-contracts.js": "0.0.1-commit.dbf9cec",
67
- "@aztec/protocol-contracts": "0.0.1-commit.dbf9cec",
68
- "@aztec/stdlib": "0.0.1-commit.dbf9cec",
69
- "@aztec/telemetry-client": "0.0.1-commit.dbf9cec",
70
- "@aztec/wallets": "0.0.1-commit.dbf9cec",
57
+ "@aztec/accounts": "0.0.1-commit.e0f15ab9b",
58
+ "@aztec/aztec.js": "0.0.1-commit.e0f15ab9b",
59
+ "@aztec/entrypoints": "0.0.1-commit.e0f15ab9b",
60
+ "@aztec/ethereum": "0.0.1-commit.e0f15ab9b",
61
+ "@aztec/foundation": "0.0.1-commit.e0f15ab9b",
62
+ "@aztec/kv-store": "0.0.1-commit.e0f15ab9b",
63
+ "@aztec/l1-artifacts": "0.0.1-commit.e0f15ab9b",
64
+ "@aztec/noir-contracts.js": "0.0.1-commit.e0f15ab9b",
65
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.e0f15ab9b",
66
+ "@aztec/noir-test-contracts.js": "0.0.1-commit.e0f15ab9b",
67
+ "@aztec/protocol-contracts": "0.0.1-commit.e0f15ab9b",
68
+ "@aztec/stdlib": "0.0.1-commit.e0f15ab9b",
69
+ "@aztec/telemetry-client": "0.0.1-commit.e0f15ab9b",
70
+ "@aztec/wallets": "0.0.1-commit.e0f15ab9b",
71
71
  "source-map-support": "^0.5.21",
72
72
  "tslib": "^2.4.0",
73
73
  "viem": "npm:@aztec/viem@2.38.2",
package/src/amm_bot.ts CHANGED
@@ -71,12 +71,14 @@ export class AmmBot extends BaseBot {
71
71
  .getFunctionCall(),
72
72
  });
73
73
 
74
- const amountOutMin = await amm.methods
75
- .get_amount_out_for_exact_in(
76
- await tokenIn.methods.balance_of_public(amm.address).simulate({ from: this.defaultAccountAddress }),
77
- await tokenOut.methods.balance_of_public(amm.address).simulate({ from: this.defaultAccountAddress }),
78
- amountIn,
79
- )
74
+ const { result: tokenInBalance } = await tokenIn.methods
75
+ .balance_of_public(amm.address)
76
+ .simulate({ from: this.defaultAccountAddress });
77
+ const { result: tokenOutBalance } = await tokenOut.methods
78
+ .balance_of_public(amm.address)
79
+ .simulate({ from: this.defaultAccountAddress });
80
+ const { result: amountOutMin } = await amm.methods
81
+ .get_amount_out_for_exact_in(tokenInBalance, tokenOutBalance, amountIn)
80
82
  .simulate({ from: this.defaultAccountAddress });
81
83
 
82
84
  const swapExactTokensInteraction = amm.methods
@@ -89,7 +91,8 @@ export class AmmBot extends BaseBot {
89
91
 
90
92
  this.log.verbose(`Sending transaction`, logCtx);
91
93
  this.log.info(`Tx. Balances: ${jsonStringify(balances)}`, { ...logCtx, balances });
92
- return swapExactTokensInteraction.send({ ...opts, wait: NO_WAIT });
94
+ const { txHash } = await swapExactTokensInteraction.send({ ...opts, wait: NO_WAIT });
95
+ return txHash;
93
96
  }
94
97
 
95
98
  protected override async onTxMined(receipt: TxReceipt, logCtx: object): Promise<void> {
@@ -110,15 +113,17 @@ export class AmmBot extends BaseBot {
110
113
  }
111
114
 
112
115
  private async getPublicBalanceFor(address: AztecAddress, from?: AztecAddress): Promise<Balances> {
113
- return {
114
- token0: await this.token0.methods.balance_of_public(address).simulate({ from: from ?? address }),
115
- token1: await this.token1.methods.balance_of_public(address).simulate({ from: from ?? address }),
116
- };
116
+ const { result: token0 } = await this.token0.methods.balance_of_public(address).simulate({ from: from ?? address });
117
+ const { result: token1 } = await this.token1.methods.balance_of_public(address).simulate({ from: from ?? address });
118
+ return { token0, token1 };
117
119
  }
118
120
  private async getPrivateBalanceFor(address: AztecAddress, from?: AztecAddress): Promise<Balances> {
119
- return {
120
- token0: await this.token0.methods.balance_of_private(address).simulate({ from: from ?? address }),
121
- token1: await this.token1.methods.balance_of_private(address).simulate({ from: from ?? address }),
122
- };
121
+ const { result: token0 } = await this.token0.methods
122
+ .balance_of_private(address)
123
+ .simulate({ from: from ?? address });
124
+ const { result: token1 } = await this.token1.methods
125
+ .balance_of_private(address)
126
+ .simulate({ from: from ?? address });
127
+ return { token0, token1 };
123
128
  }
124
129
  }
package/src/bot.ts CHANGED
@@ -76,7 +76,8 @@ export class Bot extends BaseBot {
76
76
  await batch.simulate({ from: this.defaultAccountAddress });
77
77
 
78
78
  this.log.verbose(`Sending transaction`, logCtx);
79
- return batch.send({ ...opts, wait: NO_WAIT });
79
+ const { txHash } = await batch.send({ ...opts, wait: NO_WAIT });
80
+ return txHash;
80
81
  }
81
82
 
82
83
  public async getBalances() {
package/src/config.ts CHANGED
@@ -11,9 +11,9 @@ import {
11
11
  secretStringConfigHelper,
12
12
  } from '@aztec/foundation/config';
13
13
  import { Fr } from '@aztec/foundation/curves/bn254';
14
- import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
15
14
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
16
15
  import { protocolContractsHash } from '@aztec/protocol-contracts';
16
+ import { type DataStoreConfig, dataConfigMappings } from '@aztec/stdlib/kv-store';
17
17
  import { schemas, zodFor } from '@aztec/stdlib/schemas';
18
18
  import type { ComponentsVersions } from '@aztec/stdlib/versioning';
19
19
 
@@ -130,7 +130,6 @@ export const BotConfigSchema = zodFor<BotConfig>()(
130
130
  l1Mnemonic: undefined,
131
131
  l1PrivateKey: undefined,
132
132
  senderPrivateKey: undefined,
133
- dataDirectory: undefined,
134
133
  dataStoreMapSizeKb: 1_024 * 1_024,
135
134
  ...config,
136
135
  })),
@@ -140,7 +140,8 @@ export class CrossChainBot extends BaseBot {
140
140
  const opts = await this.getSendMethodOpts(batch);
141
141
 
142
142
  this.log.verbose(`Sending cross-chain batch with ${calls.length} calls`, logCtx);
143
- return batch.send({ ...opts, wait: NO_WAIT });
143
+ const { txHash } = await batch.send({ ...opts, wait: NO_WAIT });
144
+ return txHash;
144
145
  }
145
146
 
146
147
  protected override async onTxMined(receipt: TxReceipt, logCtx: object): Promise<void> {
@@ -174,14 +175,7 @@ export class CrossChainBot extends BaseBot {
174
175
  ): Promise<PendingL1ToL2Message | undefined> {
175
176
  const now = Date.now();
176
177
  for (const msg of pendingMessages) {
177
- const ready = await isL1ToL2MessageReady(this.node, Fr.fromHexString(msg.msgHash), {
178
- // Use forPublicConsumption: false so we wait until blockNumber >= messageBlockNumber.
179
- // With forPublicConsumption: true, the check returns true one block early (the sequencer
180
- // includes L1→L2 messages before executing the block's txs), but gas estimation simulates
181
- // against the current world state which doesn't yet have the message.
182
- // See https://linear.app/aztec-labs/issue/A-548 for details.
183
- forPublicConsumption: false,
184
- });
178
+ const ready = await isL1ToL2MessageReady(this.node, Fr.fromHexString(msg.msgHash));
185
179
  if (ready) {
186
180
  return msg;
187
181
  }
package/src/factory.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { getInitialTestAccountsData } from '@aztec/accounts/testing';
2
+ import { NO_FROM } from '@aztec/aztec.js/account';
2
3
  import { AztecAddress } from '@aztec/aztec.js/addresses';
3
4
  import {
4
5
  BatchCall,
@@ -15,6 +16,7 @@ import { deriveKeys } from '@aztec/aztec.js/keys';
15
16
  import { createLogger } from '@aztec/aztec.js/log';
16
17
  import { waitForL1ToL2MessageReady } from '@aztec/aztec.js/messaging';
17
18
  import { waitForTx } from '@aztec/aztec.js/node';
19
+ import { ContractInitializationStatus } from '@aztec/aztec.js/wallet';
18
20
  import { createEthereumChain } from '@aztec/ethereum/chain';
19
21
  import { createExtendedL1Client } from '@aztec/ethereum/client';
20
22
  import { RollupContract } from '@aztec/ethereum/contracts';
@@ -27,7 +29,7 @@ import { PrivateTokenContract } from '@aztec/noir-contracts.js/PrivateToken';
27
29
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
28
30
  import { TestContract } from '@aztec/noir-test-contracts.js/Test';
29
31
  import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
30
- import { GasSettings } from '@aztec/stdlib/gas';
32
+ import { GasFees, GasSettings } from '@aztec/stdlib/gas';
31
33
  import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
32
34
  import { deriveSigningKey } from '@aztec/stdlib/keys';
33
35
  import { EmbeddedWallet } from '@aztec/wallets/embedded';
@@ -49,7 +51,11 @@ export class BotFactory {
49
51
  private readonly store: BotStore,
50
52
  private readonly aztecNode: AztecNode,
51
53
  private readonly aztecNodeAdmin?: AztecNodeAdmin,
52
- ) {}
54
+ ) {
55
+ // Set fee padding on the wallet so that all transactions during setup
56
+ // (token deploy, minting, etc.) use the configured padding, not the default.
57
+ this.wallet.setMinFeePadding(config.minFeePadding);
58
+ }
53
59
 
54
60
  /**
55
61
  * Initializes a new bot by setting up the sender account, registering the recipient,
@@ -158,11 +164,6 @@ export class BotFactory {
158
164
  const firstMsg = allMessages[0];
159
165
  await waitForL1ToL2MessageReady(this.aztecNode, Fr.fromHexString(firstMsg.msgHash), {
160
166
  timeoutSeconds: this.config.l1ToL2MessageTimeoutSeconds,
161
- // Use forPublicConsumption: false so we wait until the message is in the current world
162
- // state. With true, it returns one block early which causes gas estimation simulation to
163
- // fail since it runs against the current state.
164
- // See https://linear.app/aztec-labs/issue/A-548 for details.
165
- forPublicConsumption: false,
166
167
  });
167
168
  this.log.info(`First L1→L2 message is ready`);
168
169
  }
@@ -208,7 +209,7 @@ export class BotFactory {
208
209
  const signingKey = deriveSigningKey(secret);
209
210
  const accountManager = await this.wallet.createSchnorrAccount(secret, salt, signingKey);
210
211
  const metadata = await this.wallet.getContractMetadata(accountManager.address);
211
- if (metadata.isContractInitialized) {
212
+ if (metadata.initializationStatus === ContractInitializationStatus.INITIALIZED) {
212
213
  this.log.info(`Account at ${accountManager.address.toString()} already initialized`);
213
214
  const timer = new Timer();
214
215
  const address = accountManager.address;
@@ -224,15 +225,20 @@ export class BotFactory {
224
225
  const paymentMethod = new FeeJuicePaymentMethodWithClaim(accountManager.address, claim);
225
226
  const deployMethod = await accountManager.getDeployMethod();
226
227
  const maxFeesPerGas = (await this.aztecNode.getCurrentMinFees()).mul(1 + this.config.minFeePadding);
227
- const gasSettings = GasSettings.default({ maxFeesPerGas });
228
+
229
+ const { estimatedGas } = await deployMethod.simulate({
230
+ from: NO_FROM,
231
+ fee: { estimateGas: true, paymentMethod },
232
+ });
233
+ const gasSettings = GasSettings.from({ ...estimatedGas!, maxFeesPerGas, maxPriorityFeesPerGas: GasFees.empty() });
228
234
 
229
235
  await this.withNoMinTxsPerBlock(async () => {
230
- const txHash = await deployMethod.send({
231
- from: AztecAddress.ZERO,
236
+ const { txHash } = await deployMethod.send({
237
+ from: NO_FROM,
232
238
  fee: { gasSettings, paymentMethod },
233
239
  wait: NO_WAIT,
234
240
  });
235
- this.log.info(`Sent tx for account deployment with hash ${txHash.toString()}`);
241
+ this.log.info(`Sent tx for account deployment with hash ${txHash.toString()}`, { gasSettings });
236
242
  return waitForTx(this.aztecNode, txHash, { timeout: this.config.txMinedWaitSeconds });
237
243
  });
238
244
  this.log.info(`Account deployed at ${address}`);
@@ -298,8 +304,9 @@ export class BotFactory {
298
304
  await deploy.register();
299
305
  } else {
300
306
  this.log.info(`Deploying token contract at ${address.toString()}`);
301
- const txHash = await deploy.send({ ...deployOpts, wait: NO_WAIT });
302
- this.log.info(`Sent tx for token setup with hash ${txHash.toString()}`);
307
+ const { estimatedGas } = await deploy.simulate({ ...deployOpts, fee: { estimateGas: true } });
308
+ const { txHash } = await deploy.send({ ...deployOpts, fee: { gasSettings: estimatedGas }, wait: NO_WAIT });
309
+ this.log.info(`Sent tx for token setup with hash ${txHash.toString()}`, { estimatedGas });
303
310
  await this.withNoMinTxsPerBlock(async () => {
304
311
  await waitForTx(this.aztecNode, txHash, { timeout: this.config.txMinedWaitSeconds });
305
312
  return token;
@@ -339,10 +346,19 @@ export class BotFactory {
339
346
  const amm = AMMContract.at(instance.address, this.wallet);
340
347
 
341
348
  this.log.info(`AMM deployed at ${amm.address}`);
342
- const minterReceipt = await lpToken.methods
343
- .set_minter(amm.address, true)
344
- .send({ from: deployer, wait: { timeout: this.config.txMinedWaitSeconds } });
345
- this.log.info(`Set LP token minter to AMM txHash=${minterReceipt.txHash.toString()}`);
349
+ const setMinterInteraction = lpToken.methods.set_minter(amm.address, true);
350
+ const { estimatedGas: setMinterGas } = await setMinterInteraction.simulate({
351
+ from: deployer,
352
+ fee: { estimateGas: true },
353
+ });
354
+ const { receipt: minterReceipt } = await setMinterInteraction.send({
355
+ from: deployer,
356
+ fee: { gasSettings: setMinterGas },
357
+ wait: { timeout: this.config.txMinedWaitSeconds },
358
+ });
359
+ this.log.info(`Set LP token minter to AMM txHash=${minterReceipt.txHash.toString()}`, {
360
+ estimatedGas: setMinterGas,
361
+ });
346
362
  this.log.info(`Liquidity token initialized`);
347
363
 
348
364
  return amm;
@@ -358,9 +374,18 @@ export class BotFactory {
358
374
  ): Promise<void> {
359
375
  const getPrivateBalances = () =>
360
376
  Promise.all([
361
- token0.methods.balance_of_private(liquidityProvider).simulate({ from: liquidityProvider }),
362
- token1.methods.balance_of_private(liquidityProvider).simulate({ from: liquidityProvider }),
363
- lpToken.methods.balance_of_private(liquidityProvider).simulate({ from: liquidityProvider }),
377
+ token0.methods
378
+ .balance_of_private(liquidityProvider)
379
+ .simulate({ from: liquidityProvider })
380
+ .then(r => r.result),
381
+ token1.methods
382
+ .balance_of_private(liquidityProvider)
383
+ .simulate({ from: liquidityProvider })
384
+ .then(r => r.result),
385
+ lpToken.methods
386
+ .balance_of_private(liquidityProvider)
387
+ .simulate({ from: liquidityProvider })
388
+ .then(r => r.result),
364
389
  ]);
365
390
 
366
391
  const authwitNonce = Fr.random();
@@ -401,22 +426,44 @@ export class BotFactory {
401
426
  .getFunctionCall(),
402
427
  });
403
428
 
404
- const mintReceipt = await new BatchCall(this.wallet, [
429
+ const mintBatch = new BatchCall(this.wallet, [
405
430
  token0.methods.mint_to_private(liquidityProvider, MINT_BALANCE),
406
431
  token1.methods.mint_to_private(liquidityProvider, MINT_BALANCE),
407
- ]).send({ from: liquidityProvider, wait: { timeout: this.config.txMinedWaitSeconds } });
432
+ ]);
433
+ const { estimatedGas: mintGas } = await mintBatch.simulate({
434
+ from: liquidityProvider,
435
+ fee: { estimateGas: true },
436
+ });
437
+ const { receipt: mintReceipt } = await mintBatch.send({
438
+ from: liquidityProvider,
439
+ fee: { gasSettings: mintGas },
440
+ wait: { timeout: this.config.txMinedWaitSeconds },
441
+ });
408
442
 
409
- this.log.info(`Sent mint tx: ${mintReceipt.txHash.toString()}`);
443
+ this.log.info(`Sent mint tx: ${mintReceipt.txHash.toString()}`, { estimatedGas: mintGas });
410
444
 
411
- const addLiquidityReceipt = await amm.methods
412
- .add_liquidity(amount0Max, amount1Max, amount0Min, amount1Min, authwitNonce)
413
- .send({
414
- from: liquidityProvider,
415
- authWitnesses: [token0Authwit, token1Authwit],
416
- wait: { timeout: this.config.txMinedWaitSeconds },
417
- });
445
+ const addLiquidityInteraction = amm.methods.add_liquidity(
446
+ amount0Max,
447
+ amount1Max,
448
+ amount0Min,
449
+ amount1Min,
450
+ authwitNonce,
451
+ );
452
+ const { estimatedGas: addLiquidityGas } = await addLiquidityInteraction.simulate({
453
+ from: liquidityProvider,
454
+ fee: { estimateGas: true },
455
+ authWitnesses: [token0Authwit, token1Authwit],
456
+ });
457
+ const { receipt: addLiquidityReceipt } = await addLiquidityInteraction.send({
458
+ from: liquidityProvider,
459
+ fee: { gasSettings: addLiquidityGas },
460
+ authWitnesses: [token0Authwit, token1Authwit],
461
+ wait: { timeout: this.config.txMinedWaitSeconds },
462
+ });
418
463
 
419
- this.log.info(`Sent tx to add liquidity to the AMM: ${addLiquidityReceipt.txHash.toString()}`);
464
+ this.log.info(`Sent tx to add liquidity to the AMM: ${addLiquidityReceipt.txHash.toString()}`, {
465
+ estimatedGas: addLiquidityGas,
466
+ });
420
467
  this.log.info(`Liquidity added`);
421
468
 
422
469
  const [newT0Bal, newT1Bal, newLPBal] = await getPrivateBalances();
@@ -437,9 +484,10 @@ export class BotFactory {
437
484
  this.log.info(`Contract ${name} at ${address.toString()} already deployed`);
438
485
  await deploy.register();
439
486
  } else {
440
- this.log.info(`Deploying contract ${name} at ${address.toString()}`);
487
+ const { estimatedGas } = await deploy.simulate({ ...deployOpts, fee: { estimateGas: true } });
488
+ this.log.info(`Deploying contract ${name} at ${address.toString()}`, { estimatedGas });
441
489
  await this.withNoMinTxsPerBlock(async () => {
442
- const txHash = await deploy.send({ ...deployOpts, wait: NO_WAIT });
490
+ const { txHash } = await deploy.send({ ...deployOpts, fee: { gasSettings: estimatedGas }, wait: NO_WAIT });
443
491
  this.log.info(`Sent contract ${name} setup tx with hash ${txHash.toString()}`);
444
492
  return waitForTx(this.aztecNode, txHash, { timeout: this.config.txMinedWaitSeconds });
445
493
  });
@@ -483,9 +531,16 @@ export class BotFactory {
483
531
 
484
532
  // PrivateToken's mint accesses contract-level private storage vars (admin, total_supply).
485
533
  const additionalScopes = isStandardToken ? undefined : [token.address];
534
+ const mintBatch = new BatchCall(token.wallet, calls);
535
+ const { estimatedGas } = await mintBatch.simulate({ from: minter, fee: { estimateGas: true }, additionalScopes });
486
536
  await this.withNoMinTxsPerBlock(async () => {
487
- const txHash = await new BatchCall(token.wallet, calls).send({ from: minter, additionalScopes, wait: NO_WAIT });
488
- this.log.info(`Sent token mint tx with hash ${txHash.toString()}`);
537
+ const { txHash } = await mintBatch.send({
538
+ from: minter,
539
+ additionalScopes,
540
+ fee: { gasSettings: estimatedGas },
541
+ wait: NO_WAIT,
542
+ });
543
+ this.log.info(`Sent token mint tx with hash ${txHash.toString()}`, { estimatedGas });
489
544
  return waitForTx(this.aztecNode, txHash, { timeout: this.config.txMinedWaitSeconds });
490
545
  });
491
546
  }
@@ -507,7 +562,6 @@ export class BotFactory {
507
562
  await this.withNoMinTxsPerBlock(() =>
508
563
  waitForL1ToL2MessageReady(this.aztecNode, messageHash, {
509
564
  timeoutSeconds: this.config.l1ToL2MessageTimeoutSeconds,
510
- forPublicConsumption: false,
511
565
  }),
512
566
  );
513
567
  return existingClaim.claim;
@@ -546,7 +600,6 @@ export class BotFactory {
546
600
  await this.withNoMinTxsPerBlock(() =>
547
601
  waitForL1ToL2MessageReady(this.aztecNode, Fr.fromHexString(claim.messageHash), {
548
602
  timeoutSeconds: this.config.l1ToL2MessageTimeoutSeconds,
549
- forPublicConsumption: false,
550
603
  }),
551
604
  );
552
605
 
package/src/utils.ts CHANGED
@@ -15,8 +15,8 @@ export async function getBalances(
15
15
  who: AztecAddress,
16
16
  from?: AztecAddress,
17
17
  ): Promise<{ privateBalance: bigint; publicBalance: bigint }> {
18
- const privateBalance = await token.methods.balance_of_private(who).simulate({ from: from ?? who });
19
- const publicBalance = await token.methods.balance_of_public(who).simulate({ from: from ?? who });
18
+ const { result: privateBalance } = await token.methods.balance_of_private(who).simulate({ from: from ?? who });
19
+ const { result: publicBalance } = await token.methods.balance_of_public(who).simulate({ from: from ?? who });
20
20
  return { privateBalance, publicBalance };
21
21
  }
22
22
 
@@ -25,7 +25,7 @@ export async function getPrivateBalance(
25
25
  who: AztecAddress,
26
26
  from?: AztecAddress,
27
27
  ): Promise<bigint> {
28
- const privateBalance = await token.methods.get_balance(who).simulate({ from: from ?? who });
28
+ const { result: privateBalance } = await token.methods.get_balance(who).simulate({ from: from ?? who });
29
29
  return privateBalance;
30
30
  }
31
31