@aztec/bot 0.0.1-commit.f504929 → 0.0.1-commit.f5a9928
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 +4 -3
- package/dest/amm_bot.d.ts.map +1 -1
- package/dest/amm_bot.js +3 -3
- package/dest/base_bot.d.ts +4 -4
- package/dest/base_bot.d.ts.map +1 -1
- package/dest/base_bot.js +12 -22
- package/dest/bot.d.ts +3 -2
- package/dest/bot.d.ts.map +1 -1
- package/dest/bot.js +3 -7
- package/dest/config.d.ts +31 -82
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +6 -7
- package/dest/cross_chain_bot.d.ts +6 -4
- package/dest/cross_chain_bot.d.ts.map +1 -1
- package/dest/cross_chain_bot.js +14 -17
- package/dest/factory.d.ts +17 -7
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +232 -177
- package/dest/interface.d.ts +2 -6
- package/dest/interface.d.ts.map +1 -1
- package/dest/interface.js +30 -7
- package/dest/runner.d.ts +3 -2
- package/dest/runner.d.ts.map +1 -1
- package/dest/runner.js +6 -4
- package/package.json +16 -16
- package/src/amm_bot.ts +5 -2
- package/src/base_bot.ts +10 -17
- package/src/bot.ts +4 -4
- package/src/config.ts +8 -8
- package/src/cross_chain_bot.ts +12 -14
- package/src/factory.ts +233 -195
- package/src/interface.ts +7 -7
- package/src/runner.ts +26 -3
package/dest/amm_bot.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
|
|
2
|
+
import type { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
|
|
3
3
|
import type { AMMContract } from '@aztec/noir-contracts.js/AMM';
|
|
4
4
|
import type { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
5
|
+
import type { BlockTag } from '@aztec/stdlib/block';
|
|
5
6
|
import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
6
7
|
import type { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
7
8
|
import { BaseBot } from './base_bot.js';
|
|
@@ -16,7 +17,7 @@ export declare class AmmBot extends BaseBot {
|
|
|
16
17
|
readonly token0: TokenContract;
|
|
17
18
|
readonly token1: TokenContract;
|
|
18
19
|
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
|
+
static create(config: BotConfig, wallet: EmbeddedWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore, syncChainTip?: BlockTag): Promise<AmmBot>;
|
|
20
21
|
protected createAndSendTx(logCtx: object): Promise<TxHash>;
|
|
21
22
|
protected onTxMined(receipt: TxReceipt, logCtx: object): Promise<void>;
|
|
22
23
|
getAmmBalances(): Promise<Balances>;
|
|
@@ -29,4 +30,4 @@ export declare class AmmBot extends BaseBot {
|
|
|
29
30
|
private getPrivateBalanceFor;
|
|
30
31
|
}
|
|
31
32
|
export {};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1tX2JvdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtbV9ib3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3pELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLakQsS0FBSyxRQUFRLEdBQUc7SUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFbkQscUJBQWEsTUFBTyxTQUFRLE9BQU87YUFLZixHQUFHLEVBQUUsV0FBVzthQUNoQixNQUFNLEVBQUUsYUFBYTthQUNyQixNQUFNLEVBQUUsYUFBYTtJQU52QyxTQUFTLGFBQ1AsSUFBSSxFQUFFLFNBQVMsRUFDZixNQUFNLEVBQUUsY0FBYyxFQUN0QixxQkFBcUIsRUFBRSxZQUFZLEVBQ25CLEdBQUcsRUFBRSxXQUFXLEVBQ2hCLE1BQU0sRUFBRSxhQUFhLEVBQ3JCLE1BQU0sRUFBRSxhQUFhLEVBQ3JDLE1BQU0sRUFBRSxTQUFTLEVBR2xCO0lBRUQsT0FBYSxNQUFNLENBQ2pCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLE1BQU0sRUFBRSxjQUFjLEVBQ3RCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGNBQWMsRUFBRSxjQUFjLEdBQUcsU0FBUyxFQUMxQyxLQUFLLEVBQUUsUUFBUSxFQUNmLFlBQVksQ0FBQyxFQUFFLFFBQVEsR0FDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQVVqQjtJQUVELFVBQWdCLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0E2Qy9EO0lBRUQsVUFBeUIsU0FBUyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBR3BGO0lBRU0sY0FBYyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FFekM7SUFFWSxXQUFXLElBQUksT0FBTyxDQUFDO1FBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQztRQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7UUFBQyxHQUFHLEVBQUUsUUFBUSxDQUFBO0tBQUUsQ0FBQyxDQU10RztZQUVhLG1CQUFtQjtZQUtuQixvQkFBb0I7Q0FTbkMifQ==
|
package/dest/amm_bot.d.ts.map
CHANGED
|
@@ -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;
|
|
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,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,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,EACf,YAAY,CAAC,EAAE,QAAQ,GACtB,OAAO,CAAC,MAAM,CAAC,CAUjB;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
|
@@ -12,8 +12,8 @@ export class AmmBot extends BaseBot {
|
|
|
12
12
|
constructor(node, wallet, defaultAccountAddress, amm, token0, token1, config){
|
|
13
13
|
super(node, wallet, defaultAccountAddress, config), this.amm = amm, this.token0 = token0, this.token1 = token1;
|
|
14
14
|
}
|
|
15
|
-
static async create(config, wallet, aztecNode, aztecNodeAdmin, store) {
|
|
16
|
-
const { defaultAccountAddress, token0, token1, amm } = await new BotFactory(config, wallet, store, aztecNode, aztecNodeAdmin).setupAmm();
|
|
15
|
+
static async create(config, wallet, aztecNode, aztecNodeAdmin, store, syncChainTip) {
|
|
16
|
+
const { defaultAccountAddress, token0, token1, amm } = await new BotFactory(config, wallet, store, aztecNode, aztecNodeAdmin, syncChainTip).setupAmm();
|
|
17
17
|
return new AmmBot(aztecNode, wallet, defaultAccountAddress, amm, token0, token1, config);
|
|
18
18
|
}
|
|
19
19
|
async createAndSendTx(logCtx) {
|
|
@@ -52,7 +52,7 @@ export class AmmBot extends BaseBot {
|
|
|
52
52
|
swapAuthwit
|
|
53
53
|
]
|
|
54
54
|
});
|
|
55
|
-
const opts =
|
|
55
|
+
const opts = this.getSendMethodOpts();
|
|
56
56
|
this.log.verbose(`Sending transaction`, logCtx);
|
|
57
57
|
this.log.info(`Tx. Balances: ${jsonStringify(balances)}`, {
|
|
58
58
|
...logCtx,
|
package/dest/base_bot.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import {
|
|
3
|
-
import { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
|
|
2
|
+
import type { SendInteractionOptions } from '@aztec/aztec.js/contracts';
|
|
3
|
+
import type { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
|
|
4
4
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
5
5
|
import type { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
6
6
|
import type { BotConfig } from './config.js';
|
|
@@ -16,6 +16,6 @@ export declare abstract class BaseBot {
|
|
|
16
16
|
run(): Promise<TxReceipt | TxHash>;
|
|
17
17
|
protected abstract createAndSendTx(logCtx: object): Promise<TxHash>;
|
|
18
18
|
protected onTxMined(_receipt: TxReceipt, _logCtx: object): Promise<void>;
|
|
19
|
-
protected getSendMethodOpts(
|
|
19
|
+
protected getSendMethodOpts(): SendInteractionOptions;
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9ib3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlX2JvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUl4RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLDhCQUFzQixPQUFPO2FBT1QsSUFBSSxFQUFFLFNBQVM7YUFDZixNQUFNLEVBQUUsY0FBYzthQUN0QixxQkFBcUIsRUFBRSxZQUFZO0lBQzVDLE1BQU0sRUFBRSxTQUFTO0lBVDFCLFNBQVMsQ0FBQyxHQUFHLHVDQUF1QjtJQUVwQyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBSztJQUMvQixTQUFTLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBSztJQUVoQyxTQUFTLGFBQ1MsSUFBSSxFQUFFLFNBQVMsRUFDZixNQUFNLEVBQUUsY0FBYyxFQUN0QixxQkFBcUIsRUFBRSxZQUFZLEVBQzVDLE1BQU0sRUFBRSxTQUFTLEVBQ3RCO0lBRVMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLENBeUI5QztJQUVELFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBFLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHdkU7SUFFRCxTQUFTLENBQUMsaUJBQWlCLElBQUksc0JBQXNCLENBY3BEO0NBQ0YifQ==
|
package/dest/base_bot.d.ts.map
CHANGED
|
@@ -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,
|
|
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,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAIxE,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE5D,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,SAAS,CAAC,iBAAiB,IAAI,sBAAsB,CAcpD;CACF"}
|
package/dest/base_bot.js
CHANGED
|
@@ -48,32 +48,22 @@ export class BaseBot {
|
|
|
48
48
|
// no-op
|
|
49
49
|
return Promise.resolve();
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
getSendMethodOpts() {
|
|
52
52
|
const { l2GasLimit, daGasLimit, minFeePadding } = this.config;
|
|
53
53
|
this.wallet.setMinFeePadding(minFeePadding);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
})
|
|
61
|
-
};
|
|
62
|
-
this.log.verbose(`Using gas limits ${l2GasLimit} L2 gas ${daGasLimit} DA gas`);
|
|
63
|
-
} else {
|
|
64
|
-
this.log.verbose(`Estimating gas for transaction`);
|
|
65
|
-
({ estimatedGas: gasSettings } = await interaction.simulate({
|
|
66
|
-
fee: {
|
|
67
|
-
estimateGas: true
|
|
68
|
-
},
|
|
69
|
-
from: this.defaultAccountAddress
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
54
|
+
const gasSettings = l2GasLimit !== undefined && l2GasLimit > 0 && daGasLimit !== undefined && daGasLimit > 0 ? {
|
|
55
|
+
gasLimits: Gas.from({
|
|
56
|
+
l2Gas: l2GasLimit,
|
|
57
|
+
daGas: daGasLimit
|
|
58
|
+
})
|
|
59
|
+
} : undefined;
|
|
72
60
|
return {
|
|
73
61
|
from: this.defaultAccountAddress,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
62
|
+
...gasSettings ? {
|
|
63
|
+
fee: {
|
|
64
|
+
gasSettings
|
|
65
|
+
}
|
|
66
|
+
} : {}
|
|
77
67
|
};
|
|
78
68
|
}
|
|
79
69
|
}
|
package/dest/bot.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
|
2
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
|
+
import type { BlockTag } from '@aztec/stdlib/block';
|
|
5
6
|
import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
6
7
|
import type { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
7
8
|
import { BaseBot } from './base_bot.js';
|
|
@@ -11,7 +12,7 @@ export declare class Bot extends BaseBot {
|
|
|
11
12
|
readonly token: TokenContract | PrivateTokenContract;
|
|
12
13
|
readonly recipient: AztecAddress;
|
|
13
14
|
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
|
+
static create(config: BotConfig, wallet: EmbeddedWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore, syncChainTip?: BlockTag): Promise<Bot>;
|
|
15
16
|
updateConfig(config: Partial<BotConfig>): void;
|
|
16
17
|
protected createAndSendTx(logCtx: object): Promise<TxHash>;
|
|
17
18
|
getBalances(): Promise<{
|
|
@@ -25,4 +26,4 @@ export declare class Bot extends BaseBot {
|
|
|
25
26
|
};
|
|
26
27
|
}>;
|
|
27
28
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QyxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUtqRCxxQkFBYSxHQUFJLFNBQVEsT0FBTzthQUtaLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CO2FBQzNDLFNBQVMsRUFBRSxZQUFZO0lBTHpDLFNBQVMsYUFDUCxJQUFJLEVBQUUsU0FBUyxFQUNmLE1BQU0sRUFBRSxjQUFjLEVBQ3RCLHFCQUFxQixFQUFFLFlBQVksRUFDbkIsS0FBSyxFQUFFLGFBQWEsR0FBRyxvQkFBb0IsRUFDM0MsU0FBUyxFQUFFLFlBQVksRUFDdkMsTUFBTSxFQUFFLFNBQVMsRUFHbEI7SUFFRCxPQUFhLE1BQU0sQ0FDakIsTUFBTSxFQUFFLFNBQVMsRUFDakIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsY0FBYyxFQUFFLGNBQWMsR0FBRyxTQUFTLEVBQzFDLEtBQUssRUFBRSxRQUFRLEVBQ2YsWUFBWSxDQUFDLEVBQUUsUUFBUSxHQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLENBVWQ7SUFFTSxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFHN0M7SUFFRCxVQUFnQixlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBMEIvRDtJQUVZLFdBQVc7Ozs7Ozs7OztPQWtCdkI7Q0FDRiJ9
|
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,
|
|
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,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,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,EACf,YAAY,CAAC,EAAE,QAAQ,GACtB,OAAO,CAAC,GAAG,CAAC,CAUd;IAEM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,QAG7C;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B/D;IAEY,WAAW;;;;;;;;;OAkBvB;CACF"}
|
package/dest/bot.js
CHANGED
|
@@ -10,8 +10,8 @@ export class Bot extends BaseBot {
|
|
|
10
10
|
constructor(node, wallet, defaultAccountAddress, token, recipient, config){
|
|
11
11
|
super(node, wallet, defaultAccountAddress, config), this.token = token, this.recipient = recipient;
|
|
12
12
|
}
|
|
13
|
-
static async create(config, wallet, aztecNode, aztecNodeAdmin, store) {
|
|
14
|
-
const { defaultAccountAddress, token, recipient } = await new BotFactory(config, wallet, store, aztecNode, aztecNodeAdmin).setup();
|
|
13
|
+
static async create(config, wallet, aztecNode, aztecNodeAdmin, store, syncChainTip) {
|
|
14
|
+
const { defaultAccountAddress, token, recipient } = await new BotFactory(config, wallet, store, aztecNode, aztecNodeAdmin, syncChainTip).setup();
|
|
15
15
|
return new Bot(aztecNode, wallet, defaultAccountAddress, token, recipient, config);
|
|
16
16
|
}
|
|
17
17
|
updateConfig(config) {
|
|
@@ -30,11 +30,7 @@ export class Bot extends BaseBot {
|
|
|
30
30
|
times(publicTransfersPerTx, ()=>token.methods.transfer_in_public(this.defaultAccountAddress, recipient, TRANSFER_AMOUNT, 0))
|
|
31
31
|
].flat() : times(privateTransfersPerTx, ()=>token.methods.transfer(TRANSFER_AMOUNT, this.defaultAccountAddress, recipient));
|
|
32
32
|
const batch = new BatchCall(wallet, calls);
|
|
33
|
-
const opts =
|
|
34
|
-
this.log.verbose(`Simulating transaction with ${calls.length}`, logCtx);
|
|
35
|
-
await batch.simulate({
|
|
36
|
-
from: this.defaultAccountAddress
|
|
37
|
-
});
|
|
33
|
+
const opts = this.getSendMethodOpts();
|
|
38
34
|
this.log.verbose(`Sending transaction`, logCtx);
|
|
39
35
|
const { txHash } = await batch.send({
|
|
40
36
|
...opts,
|
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
|
|
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"];
|
|
@@ -50,9 +50,9 @@ export type BotConfig = {
|
|
|
50
50
|
maxPendingTxs: number;
|
|
51
51
|
/** Whether to flush after sending each 'setup' transaction */
|
|
52
52
|
flushSetupTransactions: boolean;
|
|
53
|
-
/** L2 gas limit for the tx (empty to
|
|
53
|
+
/** L2 gas limit for the tx (empty to let the bot's wallet estimate). */
|
|
54
54
|
l2GasLimit: number | undefined;
|
|
55
|
-
/** DA gas limit for the tx (empty to
|
|
55
|
+
/** DA gas limit for the tx (empty to let the bot's wallet estimate). */
|
|
56
56
|
daGasLimit: number | undefined;
|
|
57
57
|
/** Token contract to use */
|
|
58
58
|
contract: SupportedTokenContracts;
|
|
@@ -67,14 +67,14 @@ export type BotConfig = {
|
|
|
67
67
|
/** Max L1→L2 messages to keep in-flight (crosschain mode). */
|
|
68
68
|
l1ToL2SeedCount: number;
|
|
69
69
|
} & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'>;
|
|
70
|
-
export declare const BotConfigSchema: z.
|
|
70
|
+
export declare const BotConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
71
71
|
nodeUrl: z.ZodOptional<z.ZodString>;
|
|
72
72
|
nodeAdminUrl: z.ZodOptional<z.ZodString>;
|
|
73
|
-
l1RpcUrls: z.ZodOptional<z.ZodArray<z.ZodString
|
|
74
|
-
l1Mnemonic: z.ZodOptional<z.ZodType<SecretValue<string>, any, any
|
|
75
|
-
l1PrivateKey: z.ZodOptional<z.ZodType<SecretValue<string>, any, any
|
|
73
|
+
l1RpcUrls: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
74
|
+
l1Mnemonic: z.ZodOptional<z.ZodType<SecretValue<string>, any, z.core.$ZodTypeInternals<SecretValue<string>, any>>>;
|
|
75
|
+
l1PrivateKey: z.ZodOptional<z.ZodType<SecretValue<string>, any, z.core.$ZodTypeInternals<SecretValue<string>, any>>>;
|
|
76
76
|
l1ToL2MessageTimeoutSeconds: z.ZodNumber;
|
|
77
|
-
senderPrivateKey: z.ZodOptional<z.ZodType<SecretValue<Fr>, any, any
|
|
77
|
+
senderPrivateKey: z.ZodOptional<z.ZodType<SecretValue<Fr>, any, z.core.$ZodTypeInternals<SecretValue<Fr>, any>>>;
|
|
78
78
|
senderSalt: z.ZodOptional<import("@aztec/stdlib/schemas").ZodFor<Fr>>;
|
|
79
79
|
tokenSalt: import("@aztec/stdlib/schemas").ZodFor<Fr>;
|
|
80
80
|
txIntervalSeconds: z.ZodNumber;
|
|
@@ -84,28 +84,30 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
84
84
|
minFeePadding: z.ZodNumber;
|
|
85
85
|
noStart: z.ZodBoolean;
|
|
86
86
|
txMinedWaitSeconds: z.ZodNumber;
|
|
87
|
-
followChain: z.ZodEnum<
|
|
87
|
+
followChain: z.ZodEnum<{
|
|
88
|
+
CHECKPOINTED: "CHECKPOINTED";
|
|
89
|
+
NONE: "NONE";
|
|
90
|
+
PROPOSED: "PROPOSED";
|
|
91
|
+
PROVEN: "PROVEN";
|
|
92
|
+
}>;
|
|
88
93
|
maxPendingTxs: z.ZodNumber;
|
|
89
94
|
flushSetupTransactions: z.ZodBoolean;
|
|
90
95
|
l2GasLimit: z.ZodOptional<z.ZodNumber>;
|
|
91
96
|
daGasLimit: z.ZodOptional<z.ZodNumber>;
|
|
92
|
-
contract: z.
|
|
97
|
+
contract: z.ZodEnum<typeof SupportedTokenContracts>;
|
|
93
98
|
maxConsecutiveErrors: z.ZodNumber;
|
|
94
99
|
stopWhenUnhealthy: z.ZodBoolean;
|
|
95
|
-
botMode: z.ZodDefault<z.ZodEnum<
|
|
100
|
+
botMode: z.ZodDefault<z.ZodEnum<{
|
|
101
|
+
amm: "amm";
|
|
102
|
+
crosschain: "crosschain";
|
|
103
|
+
transfer: "transfer";
|
|
104
|
+
}>>;
|
|
96
105
|
l2ToL1MessagesPerTx: z.ZodDefault<z.ZodNumber>;
|
|
97
106
|
l1ToL2SeedCount: z.ZodDefault<z.ZodNumber>;
|
|
98
107
|
dataDirectory: z.ZodOptional<z.ZodString>;
|
|
99
108
|
dataStoreMapSizeKb: z.ZodOptional<z.ZodNumber>;
|
|
100
|
-
},
|
|
101
|
-
nodeUrl?: string | undefined;
|
|
102
|
-
nodeAdminUrl?: string | undefined;
|
|
103
|
-
l1RpcUrls?: string[] | undefined;
|
|
104
|
-
l1Mnemonic?: SecretValue<string> | undefined;
|
|
105
|
-
l1PrivateKey?: SecretValue<string> | undefined;
|
|
109
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
106
110
|
l1ToL2MessageTimeoutSeconds: number;
|
|
107
|
-
senderPrivateKey?: SecretValue<Fr> | undefined;
|
|
108
|
-
senderSalt?: Fr | undefined;
|
|
109
111
|
tokenSalt: Fr;
|
|
110
112
|
txIntervalSeconds: number;
|
|
111
113
|
privateTransfersPerTx: number;
|
|
@@ -117,8 +119,6 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
117
119
|
followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
|
|
118
120
|
maxPendingTxs: number;
|
|
119
121
|
flushSetupTransactions: boolean;
|
|
120
|
-
l2GasLimit?: number | undefined;
|
|
121
|
-
daGasLimit?: number | undefined;
|
|
122
122
|
contract: SupportedTokenContracts;
|
|
123
123
|
maxConsecutiveErrors: number;
|
|
124
124
|
stopWhenUnhealthy: boolean;
|
|
@@ -126,56 +126,6 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
126
126
|
l2ToL1MessagesPerTx: number;
|
|
127
127
|
l1ToL2SeedCount: number;
|
|
128
128
|
dataDirectory?: string | undefined;
|
|
129
|
-
dataStoreMapSizeKb?: number | undefined;
|
|
130
|
-
}, {
|
|
131
|
-
nodeUrl?: string | undefined;
|
|
132
|
-
nodeAdminUrl?: string | undefined;
|
|
133
|
-
l1RpcUrls?: string[] | undefined;
|
|
134
|
-
l1Mnemonic?: any;
|
|
135
|
-
l1PrivateKey?: any;
|
|
136
|
-
l1ToL2MessageTimeoutSeconds: number;
|
|
137
|
-
senderPrivateKey?: any;
|
|
138
|
-
senderSalt?: any;
|
|
139
|
-
tokenSalt?: any;
|
|
140
|
-
txIntervalSeconds: number;
|
|
141
|
-
privateTransfersPerTx: number;
|
|
142
|
-
publicTransfersPerTx: number;
|
|
143
|
-
feePaymentMethod: "fee_juice";
|
|
144
|
-
minFeePadding: number;
|
|
145
|
-
noStart: boolean;
|
|
146
|
-
txMinedWaitSeconds: number;
|
|
147
|
-
followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
|
|
148
|
-
maxPendingTxs: number;
|
|
149
|
-
flushSetupTransactions: boolean;
|
|
150
|
-
l2GasLimit?: number | undefined;
|
|
151
|
-
daGasLimit?: number | undefined;
|
|
152
|
-
contract: SupportedTokenContracts;
|
|
153
|
-
maxConsecutiveErrors: number;
|
|
154
|
-
stopWhenUnhealthy: boolean;
|
|
155
|
-
botMode?: "amm" | "crosschain" | "transfer" | undefined;
|
|
156
|
-
l2ToL1MessagesPerTx?: number | undefined;
|
|
157
|
-
l1ToL2SeedCount?: number | undefined;
|
|
158
|
-
dataDirectory?: string | undefined;
|
|
159
|
-
dataStoreMapSizeKb?: number | undefined;
|
|
160
|
-
}>, {
|
|
161
|
-
l1ToL2MessageTimeoutSeconds: number;
|
|
162
|
-
tokenSalt: Fr;
|
|
163
|
-
txIntervalSeconds: number;
|
|
164
|
-
privateTransfersPerTx: number;
|
|
165
|
-
publicTransfersPerTx: number;
|
|
166
|
-
feePaymentMethod: "fee_juice";
|
|
167
|
-
minFeePadding: number;
|
|
168
|
-
noStart: boolean;
|
|
169
|
-
txMinedWaitSeconds: number;
|
|
170
|
-
followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
|
|
171
|
-
maxPendingTxs: number;
|
|
172
|
-
flushSetupTransactions: boolean;
|
|
173
|
-
contract: SupportedTokenContracts;
|
|
174
|
-
maxConsecutiveErrors: number;
|
|
175
|
-
stopWhenUnhealthy: boolean;
|
|
176
|
-
botMode: "amm" | "crosschain" | "transfer";
|
|
177
|
-
l2ToL1MessagesPerTx: number;
|
|
178
|
-
l1ToL2SeedCount: number;
|
|
179
129
|
nodeUrl: string | undefined;
|
|
180
130
|
nodeAdminUrl: string | undefined;
|
|
181
131
|
l1RpcUrls: string[] | undefined;
|
|
@@ -185,18 +135,17 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
185
135
|
l1Mnemonic: SecretValue<string> | undefined;
|
|
186
136
|
l1PrivateKey: SecretValue<string> | undefined;
|
|
187
137
|
senderPrivateKey: SecretValue<Fr> | undefined;
|
|
188
|
-
dataDirectory: string | undefined;
|
|
189
138
|
dataStoreMapSizeKb: number;
|
|
190
139
|
}, {
|
|
191
140
|
nodeUrl?: string | undefined;
|
|
192
141
|
nodeAdminUrl?: string | undefined;
|
|
193
142
|
l1RpcUrls?: string[] | undefined;
|
|
194
|
-
l1Mnemonic?:
|
|
195
|
-
l1PrivateKey?:
|
|
143
|
+
l1Mnemonic?: SecretValue<string> | undefined;
|
|
144
|
+
l1PrivateKey?: SecretValue<string> | undefined;
|
|
196
145
|
l1ToL2MessageTimeoutSeconds: number;
|
|
197
|
-
senderPrivateKey?:
|
|
198
|
-
senderSalt?:
|
|
199
|
-
tokenSalt
|
|
146
|
+
senderPrivateKey?: SecretValue<Fr> | undefined;
|
|
147
|
+
senderSalt?: Fr | undefined;
|
|
148
|
+
tokenSalt: Fr;
|
|
200
149
|
txIntervalSeconds: number;
|
|
201
150
|
privateTransfersPerTx: number;
|
|
202
151
|
publicTransfersPerTx: number;
|
|
@@ -212,15 +161,15 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
212
161
|
contract: SupportedTokenContracts;
|
|
213
162
|
maxConsecutiveErrors: number;
|
|
214
163
|
stopWhenUnhealthy: boolean;
|
|
215
|
-
botMode
|
|
216
|
-
l2ToL1MessagesPerTx
|
|
217
|
-
l1ToL2SeedCount
|
|
164
|
+
botMode: "amm" | "crosschain" | "transfer";
|
|
165
|
+
l2ToL1MessagesPerTx: number;
|
|
166
|
+
l1ToL2SeedCount: number;
|
|
218
167
|
dataDirectory?: string | undefined;
|
|
219
168
|
dataStoreMapSizeKb?: number | undefined;
|
|
220
|
-
}
|
|
169
|
+
}>>;
|
|
221
170
|
export declare const botConfigMappings: ConfigMappingsType<BotConfig>;
|
|
222
171
|
export declare function getBotConfigFromEnv(): BotConfig;
|
|
223
172
|
export declare function getBotDefaultConfig(): BotConfig;
|
|
224
173
|
export declare function getVersions(): Partial<ComponentsVersions>;
|
|
225
174
|
export {};
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBVVosTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBRWxGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixRQUFBLE1BQU0sY0FBYyx5REFBMEQsQ0FBQztBQUMvRSxLQUFLLGNBQWMsR0FBRyxDQUFDLE9BQU8sY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdEQsUUFBQSxNQUFNLE9BQU8sNENBQTZDLENBQUM7QUFDM0QsS0FBSyxPQUFPLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXhDLG9CQUFZLHVCQUF1QjtJQUNqQyxhQUFhLGtCQUFrQjtJQUMvQixvQkFBb0IseUJBQXlCO0NBQzlDO0FBRUQsTUFBTSxNQUFNLFNBQVMsR0FBRztJQUN0Qiw2REFBNkQ7SUFDN0QsT0FBTyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDNUIsNEVBQTRFO0lBQzVFLFlBQVksRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2pDLGdDQUFnQztJQUNoQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLGdFQUFnRTtJQUNoRSxVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM1QyxtRUFBbUU7SUFDbkUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDOUMsdUVBQXVFO0lBQ3ZFLDJCQUEyQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxrREFBa0Q7SUFDbEQsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM5Qyw2REFBNkQ7SUFDN0QsVUFBVSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDM0IsaURBQWlEO0lBQ2pELFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDZCxzREFBc0Q7SUFDdEQsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLDREQUE0RDtJQUM1RCxxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsMkRBQTJEO0lBQzNELG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixrQ0FBa0M7SUFDbEMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO0lBQzlCLHVFQUF1RTtJQUN2RSxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLDBFQUEwRTtJQUMxRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLHVFQUF1RTtJQUN2RSxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsNEVBQTRFO0lBQzVFLFdBQVcsRUFBRSxjQUFjLENBQUM7SUFDNUIsZ0ZBQWdGO0lBQ2hGLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsOERBQThEO0lBQzlELHNCQUFzQixFQUFFLE9BQU8sQ0FBQztJQUNoQyx3RUFBd0U7SUFDeEUsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDL0Isd0VBQXdFO0lBQ3hFLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQy9CLDRCQUE0QjtJQUM1QixRQUFRLEVBQUUsdUJBQXVCLENBQUM7SUFDbEMseUVBQXlFO0lBQ3pFLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixpREFBaUQ7SUFDakQsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0lBQzNCLDhDQUE4QztJQUM5QyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLDJEQUF5RDtJQUN6RCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsZ0VBQThEO0lBQzlELGVBQWUsRUFBRSxNQUFNLENBQUM7Q0FDekIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxFLGVBQU8sTUFBTSxlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QzNCLENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQW1LM0QsQ0FBQztBQUVGLHdCQUFnQixtQkFBbUIsSUFBSSxTQUFTLENBRS9DO0FBRUQsd0JBQWdCLG1CQUFtQixJQUFJLFNBQVMsQ0FFL0M7QUFFRCx3QkFBZ0IsV0FBVyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUt6RCJ9
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,WAAW,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dest/config.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper, pickConfigMappings, secretFrConfigHelper, secretStringConfigHelper } from '@aztec/foundation/config';
|
|
1
|
+
import { booleanConfigHelper, floatConfigHelper, 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 = [
|
|
@@ -35,7 +35,7 @@ export const BotConfigSchema = zodFor()(z.object({
|
|
|
35
35
|
privateTransfersPerTx: z.number().int().nonnegative(),
|
|
36
36
|
publicTransfersPerTx: z.number().int().nonnegative(),
|
|
37
37
|
feePaymentMethod: z.literal('fee_juice'),
|
|
38
|
-
minFeePadding: z.number().
|
|
38
|
+
minFeePadding: z.number().nonnegative(),
|
|
39
39
|
noStart: z.boolean(),
|
|
40
40
|
txMinedWaitSeconds: z.number(),
|
|
41
41
|
followChain: z.enum(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
|
})));
|
|
@@ -134,7 +133,7 @@ export const botConfigMappings = {
|
|
|
134
133
|
minFeePadding: {
|
|
135
134
|
env: 'BOT_MIN_FEE_PADDING',
|
|
136
135
|
description: 'How much is the bot willing to overpay vs. the current base fee',
|
|
137
|
-
...
|
|
136
|
+
...floatConfigHelper(3)
|
|
138
137
|
},
|
|
139
138
|
noStart: {
|
|
140
139
|
env: 'BOT_NO_START',
|
|
@@ -173,12 +172,12 @@ export const botConfigMappings = {
|
|
|
173
172
|
},
|
|
174
173
|
l2GasLimit: {
|
|
175
174
|
env: 'BOT_L2_GAS_LIMIT',
|
|
176
|
-
description:
|
|
175
|
+
description: "L2 gas limit for the tx (empty to let the bot's wallet estimate).",
|
|
177
176
|
...optionalNumberConfigHelper()
|
|
178
177
|
},
|
|
179
178
|
daGasLimit: {
|
|
180
179
|
env: 'BOT_DA_GAS_LIMIT',
|
|
181
|
-
description:
|
|
180
|
+
description: "DA gas limit for the tx (empty to let the bot's wallet estimate).",
|
|
182
181
|
...optionalNumberConfigHelper()
|
|
183
182
|
},
|
|
184
183
|
contract: {
|
|
@@ -24,10 +24,11 @@
|
|
|
24
24
|
*
|
|
25
25
|
*/
|
|
26
26
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
27
|
-
import { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
|
|
27
|
+
import type { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
|
|
28
28
|
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
29
29
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
30
30
|
import type { TestContract } from '@aztec/noir-test-contracts.js/Test';
|
|
31
|
+
import type { BlockTag } from '@aztec/stdlib/block';
|
|
31
32
|
import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
32
33
|
import type { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
33
34
|
import { BaseBot } from './base_bot.js';
|
|
@@ -41,14 +42,15 @@ export declare class CrossChainBot extends BaseBot {
|
|
|
41
42
|
private readonly inboxAddress;
|
|
42
43
|
private readonly rollupVersion;
|
|
43
44
|
private readonly store;
|
|
45
|
+
private readonly syncChainTip?;
|
|
44
46
|
private l2ToL1Sent;
|
|
45
47
|
private l1ToL2Consumed;
|
|
46
48
|
private pendingSeedPromise;
|
|
47
|
-
protected constructor(node: AztecNode, wallet: EmbeddedWallet, defaultAccountAddress: AztecAddress, contract: TestContract, l1Client: ExtendedViemWalletClient, l1Recipient: EthAddress, inboxAddress: EthAddress, rollupVersion: bigint, store: BotStore, config: BotConfig);
|
|
48
|
-
static create(config: BotConfig, wallet: EmbeddedWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore): Promise<CrossChainBot>;
|
|
49
|
+
protected constructor(node: AztecNode, wallet: EmbeddedWallet, defaultAccountAddress: AztecAddress, contract: TestContract, l1Client: ExtendedViemWalletClient, l1Recipient: EthAddress, inboxAddress: EthAddress, rollupVersion: bigint, store: BotStore, config: BotConfig, syncChainTip?: "checkpointed" | "finalized" | "latest" | "proposed" | "proven" | undefined);
|
|
50
|
+
static create(config: BotConfig, wallet: EmbeddedWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore, syncChainTip?: BlockTag): Promise<CrossChainBot>;
|
|
49
51
|
protected createAndSendTx(logCtx: object): Promise<TxHash>;
|
|
50
52
|
protected onTxMined(receipt: TxReceipt, logCtx: object): Promise<void>;
|
|
51
53
|
private getReadyL1ToL2Message;
|
|
52
54
|
private seedNewL1ToL2Message;
|
|
53
55
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NfY2hhaW5fYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3Jvc3NfY2hhaW5fYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc3QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFLdkUseUVBQXFFO0FBQ3JFLHFCQUFhLGFBQWMsU0FBUSxPQUFPO0lBU3RDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUN6QixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVE7SUFDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXO0lBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWTtJQUM3QixPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWE7SUFDOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBRXRCLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO0lBZmhDLE9BQU8sQ0FBQyxVQUFVLENBQUs7SUFDdkIsT0FBTyxDQUFDLGNBQWMsQ0FBSztJQUMzQixPQUFPLENBQUMsa0JBQWtCLENBQTRCO0lBRXRELFNBQVMsYUFDUCxJQUFJLEVBQUUsU0FBUyxFQUNmLE1BQU0sRUFBRSxjQUFjLEVBQ3RCLHFCQUFxQixFQUFFLFlBQVksRUFDbEIsUUFBUSxFQUFFLFlBQVksRUFDdEIsUUFBUSxFQUFFLHdCQUF3QixFQUNsQyxXQUFXLEVBQUUsVUFBVSxFQUN2QixZQUFZLEVBQUUsVUFBVSxFQUN4QixhQUFhLEVBQUUsTUFBTSxFQUNyQixLQUFLLEVBQUUsUUFBUSxFQUNoQyxNQUFNLEVBQUUsU0FBUyxFQUNBLFlBQVksQ0FBQyw2RUFBVSxFQUd6QztJQUVELE9BQWEsTUFBTSxDQUNqQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsY0FBYyxFQUN0QixTQUFTLEVBQUUsU0FBUyxFQUNwQixjQUFjLEVBQUUsY0FBYyxHQUFHLFNBQVMsRUFDMUMsS0FBSyxFQUFFLFFBQVEsRUFDZixZQUFZLENBQUMsRUFBRSxRQUFRLEdBQ3RCLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FzQnhCO0lBRUQsVUFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQWlEL0Q7SUFFRCxVQUF5QixTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0F3QnBGO1lBR2EscUJBQXFCO1lBb0JyQixvQkFBb0I7Q0FVbkMifQ==
|
|
@@ -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;
|
|
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,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5D,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,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,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;IAEtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAfhC,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,EACA,YAAY,CAAC,6EAAU,EAGzC;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,EACf,YAAY,CAAC,EAAE,QAAQ,GACtB,OAAO,CAAC,aAAa,CAAC,CAsBxB;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,CAwBpF;YAGa,qBAAqB;YAoBrB,oBAAoB;CAUnC"}
|
package/dest/cross_chain_bot.js
CHANGED
|
@@ -37,22 +37,23 @@ import { seedL1ToL2Message } from './l1_to_l2_seeding.js';
|
|
|
37
37
|
inboxAddress;
|
|
38
38
|
rollupVersion;
|
|
39
39
|
store;
|
|
40
|
+
syncChainTip;
|
|
40
41
|
l2ToL1Sent;
|
|
41
42
|
l1ToL2Consumed;
|
|
42
43
|
pendingSeedPromise;
|
|
43
|
-
constructor(node, wallet, defaultAccountAddress, contract, l1Client, l1Recipient, inboxAddress, rollupVersion, store, config){
|
|
44
|
-
super(node, wallet, defaultAccountAddress, config), this.contract = contract, this.l1Client = l1Client, this.l1Recipient = l1Recipient, this.inboxAddress = inboxAddress, this.rollupVersion = rollupVersion, this.store = store, this.l2ToL1Sent = 0, this.l1ToL2Consumed = 0;
|
|
44
|
+
constructor(node, wallet, defaultAccountAddress, contract, l1Client, l1Recipient, inboxAddress, rollupVersion, store, config, syncChainTip){
|
|
45
|
+
super(node, wallet, defaultAccountAddress, config), this.contract = contract, this.l1Client = l1Client, this.l1Recipient = l1Recipient, this.inboxAddress = inboxAddress, this.rollupVersion = rollupVersion, this.store = store, this.syncChainTip = syncChainTip, this.l2ToL1Sent = 0, this.l1ToL2Consumed = 0;
|
|
45
46
|
}
|
|
46
|
-
static async create(config, wallet, aztecNode, aztecNodeAdmin, store) {
|
|
47
|
+
static async create(config, wallet, aztecNode, aztecNodeAdmin, store, syncChainTip) {
|
|
47
48
|
if (config.followChain === 'NONE') {
|
|
48
49
|
throw new Error(`CrossChainBot requires followChain to be set (got NONE)`);
|
|
49
50
|
}
|
|
50
|
-
const factory = new BotFactory(config, wallet, store, aztecNode, aztecNodeAdmin);
|
|
51
|
+
const factory = new BotFactory(config, wallet, store, aztecNode, aztecNodeAdmin, syncChainTip);
|
|
51
52
|
const { defaultAccountAddress, contract, l1Client, rollupVersion } = await factory.setupCrossChain();
|
|
52
53
|
const l1Recipient = EthAddress.fromString(l1Client.account.address);
|
|
53
54
|
const { l1ContractAddresses } = await aztecNode.getNodeInfo();
|
|
54
55
|
const inboxAddress = EthAddress.fromString(l1ContractAddresses.inboxAddress.toString());
|
|
55
|
-
return new CrossChainBot(aztecNode, wallet, defaultAccountAddress, contract, l1Client, l1Recipient, inboxAddress, rollupVersion, store, config);
|
|
56
|
+
return new CrossChainBot(aztecNode, wallet, defaultAccountAddress, contract, l1Client, l1Recipient, inboxAddress, rollupVersion, store, config, syncChainTip);
|
|
56
57
|
}
|
|
57
58
|
async createAndSendTx(logCtx) {
|
|
58
59
|
const pendingMessages = await this.store.getUnconsumedL1ToL2Messages();
|
|
@@ -82,7 +83,7 @@ import { seedL1ToL2Message } from './l1_to_l2_seeding.js';
|
|
|
82
83
|
});
|
|
83
84
|
}
|
|
84
85
|
const batch = new BatchCall(this.wallet, calls);
|
|
85
|
-
const opts =
|
|
86
|
+
const opts = this.getSendMethodOpts();
|
|
86
87
|
this.log.verbose(`Sending cross-chain batch with ${calls.length} calls`, logCtx);
|
|
87
88
|
const { txHash } = await batch.send({
|
|
88
89
|
...opts,
|
|
@@ -92,9 +93,12 @@ import { seedL1ToL2Message } from './l1_to_l2_seeding.js';
|
|
|
92
93
|
}
|
|
93
94
|
async onTxMined(receipt, logCtx) {
|
|
94
95
|
// Verify L2→L1 messages appeared in this tx's effects
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
const minedReceipt = await this.node.getTxReceipt(receipt.txHash, {
|
|
97
|
+
includeTxEffect: true
|
|
98
|
+
});
|
|
99
|
+
const l2ToL1MsgsRaw = minedReceipt.txEffect?.l2ToL1Msgs;
|
|
100
|
+
if (l2ToL1MsgsRaw) {
|
|
101
|
+
const l2ToL1Msgs = l2ToL1MsgsRaw.filter((m)=>!m.isZero());
|
|
98
102
|
if (l2ToL1Msgs.length >= this.config.l2ToL1MessagesPerTx) {
|
|
99
103
|
this.l2ToL1Sent += l2ToL1Msgs.length;
|
|
100
104
|
} else {
|
|
@@ -116,14 +120,7 @@ import { seedL1ToL2Message } from './l1_to_l2_seeding.js';
|
|
|
116
120
|
/** Finds the oldest pending message that is ready for consumption. */ async getReadyL1ToL2Message(pendingMessages) {
|
|
117
121
|
const now = Date.now();
|
|
118
122
|
for (const msg of pendingMessages){
|
|
119
|
-
const ready = await isL1ToL2MessageReady(this.node, Fr.fromHexString(msg.msgHash),
|
|
120
|
-
// Use forPublicConsumption: false so we wait until blockNumber >= messageBlockNumber.
|
|
121
|
-
// With forPublicConsumption: true, the check returns true one block early (the sequencer
|
|
122
|
-
// includes L1→L2 messages before executing the block's txs), but gas estimation simulates
|
|
123
|
-
// against the current world state which doesn't yet have the message.
|
|
124
|
-
// See https://linear.app/aztec-labs/issue/A-548 for details.
|
|
125
|
-
forPublicConsumption: false
|
|
126
|
-
});
|
|
123
|
+
const ready = await isL1ToL2MessageReady(this.node, Fr.fromHexString(msg.msgHash), this.syncChainTip);
|
|
127
124
|
if (ready) {
|
|
128
125
|
return msg;
|
|
129
126
|
}
|