@aztec/bot 3.0.3 → 4.0.0-devnet.1-patch.0
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 +3 -4
- package/dest/amm_bot.d.ts.map +1 -1
- package/dest/amm_bot.js +5 -1
- package/dest/base_bot.d.ts +3 -3
- package/dest/base_bot.d.ts.map +1 -1
- package/dest/base_bot.js +5 -5
- package/dest/bot.d.ts +3 -3
- package/dest/bot.d.ts.map +1 -1
- package/dest/bot.js +5 -2
- package/dest/config.d.ts +10 -11
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +6 -6
- package/dest/factory.d.ts +1 -6
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +92 -59
- package/dest/runner.js +412 -30
- package/dest/store/bot_store.d.ts +2 -2
- package/dest/store/bot_store.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/amm_bot.ts +4 -4
- package/src/base_bot.ts +6 -10
- package/src/bot.ts +4 -3
- package/src/config.ts +51 -49
- package/src/factory.ts +73 -39
package/dest/amm_bot.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import {
|
|
3
|
-
import { TxReceipt } from '@aztec/aztec.js/tx';
|
|
2
|
+
import { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
|
|
4
3
|
import type { AMMContract } from '@aztec/noir-contracts.js/AMM';
|
|
5
4
|
import type { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
6
5
|
import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
@@ -18,7 +17,7 @@ export declare class AmmBot extends BaseBot {
|
|
|
18
17
|
readonly token1: TokenContract;
|
|
19
18
|
protected constructor(node: AztecNode, wallet: TestWallet, defaultAccountAddress: AztecAddress, amm: AMMContract, token0: TokenContract, token1: TokenContract, config: BotConfig);
|
|
20
19
|
static create(config: BotConfig, wallet: TestWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore): Promise<AmmBot>;
|
|
21
|
-
protected createAndSendTx(logCtx: object): Promise<
|
|
20
|
+
protected createAndSendTx(logCtx: object): Promise<TxHash>;
|
|
22
21
|
protected onTxMined(receipt: TxReceipt, logCtx: object): Promise<void>;
|
|
23
22
|
getAmmBalances(): Promise<Balances>;
|
|
24
23
|
getBalances(): Promise<{
|
|
@@ -30,4 +29,4 @@ export declare class AmmBot extends BaseBot {
|
|
|
30
29
|
private getPrivateBalanceFor;
|
|
31
30
|
}
|
|
32
31
|
export {};
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1tX2JvdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtbV9ib3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS2pELEtBQUssUUFBUSxHQUFHO0lBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDO0FBRW5ELHFCQUFhLE1BQU8sU0FBUSxPQUFPO2FBS2YsR0FBRyxFQUFFLFdBQVc7YUFDaEIsTUFBTSxFQUFFLGFBQWE7YUFDckIsTUFBTSxFQUFFLGFBQWE7SUFOdkMsU0FBUyxhQUNQLElBQUksRUFBRSxTQUFTLEVBQ2YsTUFBTSxFQUFFLFVBQVUsRUFDbEIscUJBQXFCLEVBQUUsWUFBWSxFQUNuQixHQUFHLEVBQUUsV0FBVyxFQUNoQixNQUFNLEVBQUUsYUFBYSxFQUNyQixNQUFNLEVBQUUsYUFBYSxFQUNyQyxNQUFNLEVBQUUsU0FBUyxFQUdsQjtJQUVELE9BQWEsTUFBTSxDQUNqQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsVUFBVSxFQUNsQixTQUFTLEVBQUUsU0FBUyxFQUNwQixjQUFjLEVBQUUsY0FBYyxHQUFHLFNBQVMsRUFDMUMsS0FBSyxFQUFFLFFBQVEsR0FDZCxPQUFPLENBQUMsTUFBTSxDQUFDLENBU2pCO0lBRUQsVUFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTBDL0Q7SUFFRCxVQUF5QixTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHcEY7SUFFTSxjQUFjLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUV6QztJQUVZLFdBQVcsSUFBSSxPQUFPLENBQUM7UUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO1FBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUFDLEdBQUcsRUFBRSxRQUFRLENBQUE7S0FBRSxDQUFDLENBTXRHO1lBRWEsbUJBQW1CO1lBTW5CLG9CQUFvQjtDQU1uQyJ9
|
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;
|
|
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,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKjD,KAAK,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,qBAAa,MAAO,SAAQ,OAAO;aAKf,GAAG,EAAE,WAAW;aAChB,MAAM,EAAE,aAAa;aACrB,MAAM,EAAE,aAAa;IANvC,SAAS,aACP,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,UAAU,EAClB,qBAAqB,EAAE,YAAY,EACnB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrC,MAAM,EAAE,SAAS,EAGlB;IAED,OAAa,MAAM,CACjB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,MAAM,CAAC,CASjB;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C/D;IAED,UAAyB,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;IAEM,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAEzC;IAEY,WAAW,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,QAAQ,CAAC;QAAC,aAAa,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,QAAQ,CAAA;KAAE,CAAC,CAMtG;YAEa,mBAAmB;YAMnB,oBAAoB;CAMnC"}
|
package/dest/amm_bot.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
1
2
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
2
3
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
3
4
|
import { BaseBot } from './base_bot.js';
|
|
@@ -55,7 +56,10 @@ export class AmmBot extends BaseBot {
|
|
|
55
56
|
...logCtx,
|
|
56
57
|
balances
|
|
57
58
|
});
|
|
58
|
-
return swapExactTokensInteraction.send(
|
|
59
|
+
return swapExactTokensInteraction.send({
|
|
60
|
+
...opts,
|
|
61
|
+
wait: NO_WAIT
|
|
62
|
+
});
|
|
59
63
|
}
|
|
60
64
|
async onTxMined(receipt, logCtx) {
|
|
61
65
|
const balances = await this.getBalances();
|
package/dest/base_bot.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import { BatchCall, ContractFunctionInteraction, type SendInteractionOptions
|
|
2
|
+
import { BatchCall, ContractFunctionInteraction, type SendInteractionOptions } from '@aztec/aztec.js/contracts';
|
|
3
3
|
import { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
|
|
4
4
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
5
5
|
import type { TestWallet } from '@aztec/test-wallet/server';
|
|
@@ -14,8 +14,8 @@ export declare abstract class BaseBot {
|
|
|
14
14
|
protected successes: number;
|
|
15
15
|
protected constructor(node: AztecNode, wallet: TestWallet, defaultAccountAddress: AztecAddress, config: BotConfig);
|
|
16
16
|
run(): Promise<TxReceipt | TxHash>;
|
|
17
|
-
protected abstract createAndSendTx(logCtx: object): Promise<
|
|
17
|
+
protected abstract createAndSendTx(logCtx: object): Promise<TxHash>;
|
|
18
18
|
protected onTxMined(_receipt: TxReceipt, _logCtx: object): Promise<void>;
|
|
19
19
|
protected getSendMethodOpts(interaction: ContractFunctionInteraction | BatchCall): Promise<SendInteractionOptions>;
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9ib3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlX2JvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUNMLFNBQVMsRUFDVCwyQkFBMkIsRUFDM0IsS0FBSyxzQkFBc0IsRUFFNUIsTUFBTSwyQkFBMkIsQ0FBQztBQUduQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3Qyw4QkFBc0IsT0FBTzthQU9ULElBQUksRUFBRSxTQUFTO2FBQ2YsTUFBTSxFQUFFLFVBQVU7YUFDbEIscUJBQXFCLEVBQUUsWUFBWTtJQUM1QyxNQUFNLEVBQUUsU0FBUztJQVQxQixTQUFTLENBQUMsR0FBRyx1Q0FBdUI7SUFFcEMsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUs7SUFDL0IsU0FBUyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUs7SUFFaEMsU0FBUyxhQUNTLElBQUksRUFBRSxTQUFTLEVBQ2YsTUFBTSxFQUFFLFVBQVUsRUFDbEIscUJBQXFCLEVBQUUsWUFBWSxFQUM1QyxNQUFNLEVBQUUsU0FBUyxFQUN0QjtJQUVTLEdBQUcsSUFBSSxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQThCOUM7SUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVwRSxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBR3ZFO0lBRUQsVUFBZ0IsaUJBQWlCLENBQy9CLFdBQVcsRUFBRSwyQkFBMkIsR0FBRyxTQUFTLEdBQ25ELE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQW9CakM7Q0FDRiJ9
|
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,EACL,SAAS,EACT,2BAA2B,EAC3B,KAAK,sBAAsB,
|
|
1
|
+
{"version":3,"file":"base_bot.d.ts","sourceRoot":"","sources":["../src/base_bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,SAAS,EACT,2BAA2B,EAC3B,KAAK,sBAAsB,EAE5B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,8BAAsB,OAAO;aAOT,IAAI,EAAE,SAAS;aACf,MAAM,EAAE,UAAU;aAClB,qBAAqB,EAAE,YAAY;IAC5C,MAAM,EAAE,SAAS;IAT1B,SAAS,CAAC,GAAG,uCAAuB;IAEpC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAK;IAC/B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAK;IAEhC,SAAS,aACS,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,UAAU,EAClB,qBAAqB,EAAE,YAAY,EAC5C,MAAM,EAAE,SAAS,EACtB;IAES,GAAG,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,CA8B9C;IAED,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpE,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;IAED,UAAgB,iBAAiB,CAC/B,WAAW,EAAE,2BAA2B,GAAG,SAAS,GACnD,OAAO,CAAC,sBAAsB,CAAC,CAoBjC;CACF"}
|
package/dest/base_bot.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { waitForProven } from '@aztec/aztec.js/contracts';
|
|
2
2
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
3
|
+
import { waitForTx } from '@aztec/aztec.js/node';
|
|
3
4
|
import { Gas } from '@aztec/stdlib/gas';
|
|
4
5
|
export class BaseBot {
|
|
5
6
|
node;
|
|
@@ -25,14 +26,13 @@ export class BaseBot {
|
|
|
25
26
|
};
|
|
26
27
|
const { followChain, txMinedWaitSeconds } = this.config;
|
|
27
28
|
this.log.verbose(`Creating tx`, logCtx);
|
|
28
|
-
const
|
|
29
|
-
const txHash = await tx.getTxHash();
|
|
29
|
+
const txHash = await this.createAndSendTx(logCtx);
|
|
30
30
|
if (followChain === 'NONE') {
|
|
31
31
|
this.log.info(`Transaction ${txHash.toString()} sent, not waiting for it to be mined`);
|
|
32
32
|
return txHash;
|
|
33
33
|
}
|
|
34
34
|
this.log.verbose(`Awaiting tx ${txHash.toString()} to be on the ${followChain} chain (timeout ${txMinedWaitSeconds}s)`, logCtx);
|
|
35
|
-
const receipt = await
|
|
35
|
+
const receipt = await waitForTx(this.node, txHash, {
|
|
36
36
|
timeout: txMinedWaitSeconds
|
|
37
37
|
});
|
|
38
38
|
if (followChain === 'PROVEN') {
|
|
@@ -50,8 +50,8 @@ export class BaseBot {
|
|
|
50
50
|
return Promise.resolve();
|
|
51
51
|
}
|
|
52
52
|
async getSendMethodOpts(interaction) {
|
|
53
|
-
const { l2GasLimit, daGasLimit,
|
|
54
|
-
this.wallet.
|
|
53
|
+
const { l2GasLimit, daGasLimit, minFeePadding } = this.config;
|
|
54
|
+
this.wallet.setMinFeePadding(minFeePadding);
|
|
55
55
|
let gasSettings;
|
|
56
56
|
if (l2GasLimit !== undefined && l2GasLimit > 0 && daGasLimit !== undefined && daGasLimit > 0) {
|
|
57
57
|
gasSettings = {
|
package/dest/bot.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import {
|
|
2
|
+
import { TxHash } from '@aztec/aztec.js/tx';
|
|
3
3
|
import type { PrivateTokenContract } from '@aztec/noir-contracts.js/PrivateToken';
|
|
4
4
|
import type { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
5
5
|
import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
@@ -13,7 +13,7 @@ export declare class Bot extends BaseBot {
|
|
|
13
13
|
protected constructor(node: AztecNode, wallet: TestWallet, defaultAccountAddress: AztecAddress, token: TokenContract | PrivateTokenContract, recipient: AztecAddress, config: BotConfig);
|
|
14
14
|
static create(config: BotConfig, wallet: TestWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore): Promise<Bot>;
|
|
15
15
|
updateConfig(config: Partial<BotConfig>): void;
|
|
16
|
-
protected createAndSendTx(logCtx: object): Promise<
|
|
16
|
+
protected createAndSendTx(logCtx: object): Promise<TxHash>;
|
|
17
17
|
getBalances(): Promise<{
|
|
18
18
|
sender: {
|
|
19
19
|
privateBalance: bigint;
|
|
@@ -25,4 +25,4 @@ export declare class Bot extends BaseBot {
|
|
|
25
25
|
};
|
|
26
26
|
}>;
|
|
27
27
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QyxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUtqRCxxQkFBYSxHQUFJLFNBQVEsT0FBTzthQUtaLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CO2FBQzNDLFNBQVMsRUFBRSxZQUFZO0lBTHpDLFNBQVMsYUFDUCxJQUFJLEVBQUUsU0FBUyxFQUNmLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLHFCQUFxQixFQUFFLFlBQVksRUFDbkIsS0FBSyxFQUFFLGFBQWEsR0FBRyxvQkFBb0IsRUFDM0MsU0FBUyxFQUFFLFlBQVksRUFDdkMsTUFBTSxFQUFFLFNBQVMsRUFHbEI7SUFFRCxPQUFhLE1BQU0sQ0FDakIsTUFBTSxFQUFFLFNBQVMsRUFDakIsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsY0FBYyxFQUFFLGNBQWMsR0FBRyxTQUFTLEVBQzFDLEtBQUssRUFBRSxRQUFRLEdBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQVNkO0lBRU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBRzdDO0lBRUQsVUFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTRCL0Q7SUFFWSxXQUFXOzs7Ozs7Ozs7T0FrQnZCO0NBQ0YifQ==
|
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;
|
|
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,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKjD,qBAAa,GAAI,SAAQ,OAAO;aAKZ,KAAK,EAAE,aAAa,GAAG,oBAAoB;aAC3C,SAAS,EAAE,YAAY;IALzC,SAAS,aACP,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,UAAU,EAClB,qBAAqB,EAAE,YAAY,EACnB,KAAK,EAAE,aAAa,GAAG,oBAAoB,EAC3C,SAAS,EAAE,YAAY,EACvC,MAAM,EAAE,SAAS,EAGlB;IAED,OAAa,MAAM,CACjB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,GAAG,CAAC,CASd;IAEM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,QAG7C;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B/D;IAEY,WAAW;;;;;;;;;OAkBvB;CACF"}
|
package/dest/bot.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BatchCall } from '@aztec/aztec.js/contracts';
|
|
1
|
+
import { BatchCall, NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
2
2
|
import { times } from '@aztec/foundation/collection';
|
|
3
3
|
import { BaseBot } from './base_bot.js';
|
|
4
4
|
import { BotFactory } from './factory.js';
|
|
@@ -36,7 +36,10 @@ 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
|
+
return batch.send({
|
|
40
|
+
...opts,
|
|
41
|
+
wait: NO_WAIT
|
|
42
|
+
});
|
|
40
43
|
}
|
|
41
44
|
async getBalances() {
|
|
42
45
|
if (isStandardTokenContract(this.token)) {
|
package/dest/config.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
4
|
-
import { type ZodFor } from '@aztec/stdlib/schemas';
|
|
5
4
|
import type { ComponentsVersions } from '@aztec/stdlib/versioning';
|
|
6
5
|
import { z } from 'zod';
|
|
7
6
|
declare const BotFollowChain: readonly ["NONE", "PENDING", "PROVEN"];
|
|
@@ -37,8 +36,8 @@ export type BotConfig = {
|
|
|
37
36
|
publicTransfersPerTx: number;
|
|
38
37
|
/** How to handle fee payments. */
|
|
39
38
|
feePaymentMethod: 'fee_juice';
|
|
40
|
-
/** 'How much is the bot willing to overpay vs. the current
|
|
41
|
-
|
|
39
|
+
/** 'How much is the bot willing to overpay vs. the current min fee' */
|
|
40
|
+
minFeePadding: number;
|
|
42
41
|
/** True to not automatically setup or start the bot on initialization. */
|
|
43
42
|
noStart: boolean;
|
|
44
43
|
/** How long to wait for a tx to be mined before reporting an error. */
|
|
@@ -70,13 +69,13 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
70
69
|
l1PrivateKey: z.ZodOptional<z.ZodType<SecretValue<string>, any, any>>;
|
|
71
70
|
l1ToL2MessageTimeoutSeconds: z.ZodNumber;
|
|
72
71
|
senderPrivateKey: z.ZodOptional<z.ZodType<SecretValue<Fr>, any, any>>;
|
|
73
|
-
senderSalt: z.ZodOptional<ZodFor<Fr>>;
|
|
74
|
-
tokenSalt: ZodFor<Fr>;
|
|
72
|
+
senderSalt: z.ZodOptional<import("@aztec/stdlib/schemas").ZodFor<Fr>>;
|
|
73
|
+
tokenSalt: import("@aztec/stdlib/schemas").ZodFor<Fr>;
|
|
75
74
|
txIntervalSeconds: z.ZodNumber;
|
|
76
75
|
privateTransfersPerTx: z.ZodNumber;
|
|
77
76
|
publicTransfersPerTx: z.ZodNumber;
|
|
78
77
|
feePaymentMethod: z.ZodLiteral<"fee_juice">;
|
|
79
|
-
|
|
78
|
+
minFeePadding: z.ZodNumber;
|
|
80
79
|
noStart: z.ZodBoolean;
|
|
81
80
|
txMinedWaitSeconds: z.ZodNumber;
|
|
82
81
|
followChain: z.ZodEnum<["NONE", "PENDING", "PROVEN"]>;
|
|
@@ -104,7 +103,7 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
104
103
|
privateTransfersPerTx: number;
|
|
105
104
|
publicTransfersPerTx: number;
|
|
106
105
|
feePaymentMethod: "fee_juice";
|
|
107
|
-
|
|
106
|
+
minFeePadding: number;
|
|
108
107
|
noStart: boolean;
|
|
109
108
|
txMinedWaitSeconds: number;
|
|
110
109
|
followChain: "NONE" | "PENDING" | "PROVEN";
|
|
@@ -132,7 +131,7 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
132
131
|
privateTransfersPerTx: number;
|
|
133
132
|
publicTransfersPerTx: number;
|
|
134
133
|
feePaymentMethod: "fee_juice";
|
|
135
|
-
|
|
134
|
+
minFeePadding: number;
|
|
136
135
|
noStart: boolean;
|
|
137
136
|
txMinedWaitSeconds: number;
|
|
138
137
|
followChain: "NONE" | "PENDING" | "PROVEN";
|
|
@@ -153,7 +152,7 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
153
152
|
privateTransfersPerTx: number;
|
|
154
153
|
publicTransfersPerTx: number;
|
|
155
154
|
feePaymentMethod: "fee_juice";
|
|
156
|
-
|
|
155
|
+
minFeePadding: number;
|
|
157
156
|
noStart: boolean;
|
|
158
157
|
txMinedWaitSeconds: number;
|
|
159
158
|
followChain: "NONE" | "PENDING" | "PROVEN";
|
|
@@ -188,7 +187,7 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
188
187
|
privateTransfersPerTx: number;
|
|
189
188
|
publicTransfersPerTx: number;
|
|
190
189
|
feePaymentMethod: "fee_juice";
|
|
191
|
-
|
|
190
|
+
minFeePadding: number;
|
|
192
191
|
noStart: boolean;
|
|
193
192
|
txMinedWaitSeconds: number;
|
|
194
193
|
followChain: "NONE" | "PENDING" | "PROVEN";
|
|
@@ -208,4 +207,4 @@ export declare function getBotConfigFromEnv(): BotConfig;
|
|
|
208
207
|
export declare function getBotDefaultConfig(): BotConfig;
|
|
209
208
|
export declare function getVersions(): Partial<ComponentsVersions>;
|
|
210
209
|
export {};
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBSWxGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixRQUFBLE1BQU0sY0FBYyx3Q0FBeUMsQ0FBQztBQUM5RCxLQUFLLGNBQWMsR0FBRyxDQUFDLE9BQU8sY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdEQsb0JBQVksdUJBQXVCO0lBQ2pDLGFBQWEsa0JBQWtCO0lBQy9CLG9CQUFvQix5QkFBeUI7Q0FDOUM7QUFFRCxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLDZEQUE2RDtJQUM3RCxPQUFPLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUM1Qiw0RUFBNEU7SUFDNUUsWUFBWSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDakMsZ0NBQWdDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDaEMsZ0VBQWdFO0lBQ2hFLFVBQVUsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzVDLG1FQUFtRTtJQUNuRSxZQUFZLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM5Qyx1RUFBdUU7SUFDdkUsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLGtEQUFrRDtJQUNsRCxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzlDLDZEQUE2RDtJQUM3RCxVQUFVLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUMzQixpREFBaUQ7SUFDakQsU0FBUyxFQUFFLEVBQUUsQ0FBQztJQUNkLHNEQUFzRDtJQUN0RCxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsNERBQTREO0lBQzVELHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUM5QiwyREFBMkQ7SUFDM0Qsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLGtDQUFrQztJQUNsQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7SUFDOUIsdUVBQXVFO0lBQ3ZFLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsMEVBQTBFO0lBQzFFLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDakIsdUVBQXVFO0lBQ3ZFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztJQUMzQiw0RUFBNEU7SUFDNUUsV0FBVyxFQUFFLGNBQWMsQ0FBQztJQUM1QixnRkFBZ0Y7SUFDaEYsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0Qiw4REFBOEQ7SUFDOUQsc0JBQXNCLEVBQUUsT0FBTyxDQUFDO0lBQ2hDLCtFQUErRTtJQUMvRSxVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUMvQiwrRUFBK0U7SUFDL0UsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDL0IsNEJBQTRCO0lBQzVCLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQztJQUNsQyx5RUFBeUU7SUFDekUsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLGlEQUFpRDtJQUNqRCxpQkFBaUIsRUFBRSxPQUFPLENBQUM7SUFDM0IsK0RBQStEO0lBQy9ELE1BQU0sRUFBRSxPQUFPLENBQUM7Q0FDakIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxFLGVBQU8sTUFBTSxlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTZDM0IsQ0FBQztBQUVGLGVBQU8sTUFBTSxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLENBK0kzRCxDQUFDO0FBRUYsd0JBQWdCLG1CQUFtQixJQUFJLFNBQVMsQ0FFL0M7QUFFRCx3QkFBZ0IsbUJBQW1CLElBQUksU0FBUyxDQUUvQztBQUVELHdCQUFnQixXQUFXLElBQUksT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBS3pEIn0=
|
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,EASZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,WAAW,EASZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAIlF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,cAAc,wCAAyC,CAAC;AAC9D,KAAK,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,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,+DAA+D;IAC/D,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6C3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CA+I3D,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
|
@@ -3,7 +3,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
4
4
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
5
5
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
6
|
-
import { schemas } from '@aztec/stdlib/schemas';
|
|
6
|
+
import { schemas, zodFor } from '@aztec/stdlib/schemas';
|
|
7
7
|
import { z } from 'zod';
|
|
8
8
|
const BotFollowChain = [
|
|
9
9
|
'NONE',
|
|
@@ -15,7 +15,7 @@ export var SupportedTokenContracts = /*#__PURE__*/ function(SupportedTokenContra
|
|
|
15
15
|
SupportedTokenContracts["PrivateTokenContract"] = "PrivateTokenContract";
|
|
16
16
|
return SupportedTokenContracts;
|
|
17
17
|
}({});
|
|
18
|
-
export const BotConfigSchema = z.object({
|
|
18
|
+
export const BotConfigSchema = zodFor()(z.object({
|
|
19
19
|
nodeUrl: z.string().optional(),
|
|
20
20
|
nodeAdminUrl: z.string().optional(),
|
|
21
21
|
l1RpcUrls: z.array(z.string()).optional(),
|
|
@@ -29,7 +29,7 @@ export const BotConfigSchema = z.object({
|
|
|
29
29
|
privateTransfersPerTx: z.number().int().nonnegative(),
|
|
30
30
|
publicTransfersPerTx: z.number().int().nonnegative(),
|
|
31
31
|
feePaymentMethod: z.literal('fee_juice'),
|
|
32
|
-
|
|
32
|
+
minFeePadding: z.number().int().nonnegative(),
|
|
33
33
|
noStart: z.boolean(),
|
|
34
34
|
txMinedWaitSeconds: z.number(),
|
|
35
35
|
followChain: z.enum(BotFollowChain),
|
|
@@ -56,7 +56,7 @@ export const BotConfigSchema = z.object({
|
|
|
56
56
|
dataDirectory: undefined,
|
|
57
57
|
dataStoreMapSizeKb: 1_024 * 1_024,
|
|
58
58
|
...config
|
|
59
|
-
}));
|
|
59
|
+
})));
|
|
60
60
|
export const botConfigMappings = {
|
|
61
61
|
nodeUrl: {
|
|
62
62
|
env: 'AZTEC_NODE_URL',
|
|
@@ -123,8 +123,8 @@ export const botConfigMappings = {
|
|
|
123
123
|
parseEnv: (val)=>val || undefined,
|
|
124
124
|
defaultValue: 'fee_juice'
|
|
125
125
|
},
|
|
126
|
-
|
|
127
|
-
env: '
|
|
126
|
+
minFeePadding: {
|
|
127
|
+
env: 'BOT_MIN_FEE_PADDING',
|
|
128
128
|
description: 'How much is the bot willing to overpay vs. the current base fee',
|
|
129
129
|
...numberConfigHelper(3)
|
|
130
130
|
},
|
package/dest/factory.d.ts
CHANGED
|
@@ -37,11 +37,6 @@ export declare class BotFactory {
|
|
|
37
37
|
private setupAccountWithPrivateKey;
|
|
38
38
|
private setupTestAccount;
|
|
39
39
|
private setupToken;
|
|
40
|
-
/**
|
|
41
|
-
* Checks if the token contract is deployed and deploys it if necessary.
|
|
42
|
-
* @param wallet - Wallet to deploy the token contract from.
|
|
43
|
-
* @returns The TokenContract instance.
|
|
44
|
-
*/
|
|
45
40
|
private setupTokenContract;
|
|
46
41
|
private setupAmmContract;
|
|
47
42
|
private fundAmm;
|
|
@@ -51,4 +46,4 @@ export declare class BotFactory {
|
|
|
51
46
|
private bridgeL1FeeJuice;
|
|
52
47
|
private withNoMinTxsPerBlock;
|
|
53
48
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBb0J6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRy9ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUEyQixNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU1qRCxxQkFBYSxVQUFVO0lBSW5CLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBQ3RCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQVBsQyxPQUFPLENBQUMsR0FBRyxDQUF1QjtJQUVsQyxZQUNtQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsVUFBVSxFQUNsQixLQUFLLEVBQUUsUUFBUSxFQUNmLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGNBQWMsQ0FBQyw0QkFBZ0IsRUFDOUM7SUFFSjs7O09BR0c7SUFDVSxLQUFLLElBQUksT0FBTyxDQUFDO1FBQzVCLE1BQU0sRUFBRSxVQUFVLENBQUM7UUFDbkIscUJBQXFCLEVBQUUsWUFBWSxDQUFDO1FBQ3BDLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7UUFDNUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUNoQixTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQ3pCLENBQUMsQ0FNRDtJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDL0IsTUFBTSxFQUFFLFVBQVUsQ0FBQztRQUNuQixxQkFBcUIsRUFBRSxZQUFZLENBQUM7UUFDcEMsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUNqQixNQUFNLEVBQUUsYUFBYSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDdEIsSUFBSSxFQUFFLFNBQVMsQ0FBQztLQUNqQixDQUFDLENBc0JEO1lBTWEsWUFBWTtZQVdaLDBCQUEwQjtZQThDMUIsZ0JBQWdCO1lBZ0JoQixVQUFVO1lBb0RWLGtCQUFrQjtZQWFsQixnQkFBZ0I7WUFzQmhCLE9BQU87WUE2RVAsd0JBQXdCO1lBMEJ4QixVQUFVO1lBMENWLHNCQUFzQjtZQTRCdEIsZ0JBQWdCO1lBZ0NoQixvQkFBb0I7Q0FlbkMifQ==
|
package/dest/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAoBzD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,aAAa,CAAC;AACtE,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,UAAU,EAClB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,SAAS,EACpB,cAAc,CAAC,4BAAgB,EAC9C;IAEJ;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC;QAC5B,MAAM,EAAE,UAAU,CAAC;QACnB,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,UAAU,CAAC;QACnB,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;YAMa,YAAY;YAWZ,0BAA0B;YA8C1B,gBAAgB;YAgBhB,UAAU;YAoDV,kBAAkB;YAalB,gBAAgB;YAsBhB,OAAO;YA6EP,wBAAwB;YA0BxB,UAAU;YA0CV,sBAAsB;YA4BtB,gBAAgB;YAgChB,oBAAoB;CAenC"}
|
package/dest/factory.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
|
|
2
2
|
import { getInitialTestAccountsData } from '@aztec/accounts/testing';
|
|
3
3
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
4
|
-
import { BatchCall } from '@aztec/aztec.js/contracts';
|
|
4
|
+
import { BatchCall, NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
5
5
|
import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
|
|
6
6
|
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
7
|
+
import { deriveKeys } from '@aztec/aztec.js/keys';
|
|
7
8
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
8
9
|
import { waitForL1ToL2MessageReady } from '@aztec/aztec.js/messaging';
|
|
10
|
+
import { waitForTx } from '@aztec/aztec.js/node';
|
|
9
11
|
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
10
12
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
11
13
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
@@ -89,8 +91,8 @@ export class BotFactory {
|
|
|
89
91
|
contract: new SchnorrAccountContract(signingKey)
|
|
90
92
|
};
|
|
91
93
|
const accountManager = await this.wallet.createAccount(accountData);
|
|
92
|
-
const
|
|
93
|
-
if (
|
|
94
|
+
const metadata = await this.wallet.getContractMetadata(accountManager.address);
|
|
95
|
+
if (metadata.isContractInitialized) {
|
|
94
96
|
this.log.info(`Account at ${accountManager.address.toString()} already initialized`);
|
|
95
97
|
const timer = new Timer();
|
|
96
98
|
const address = accountManager.address;
|
|
@@ -103,22 +105,24 @@ export class BotFactory {
|
|
|
103
105
|
const claim = await this.getOrCreateBridgeClaim(address);
|
|
104
106
|
const paymentMethod = new FeeJuicePaymentMethodWithClaim(accountManager.address, claim);
|
|
105
107
|
const deployMethod = await accountManager.getDeployMethod();
|
|
106
|
-
const maxFeesPerGas = (await this.aztecNode.
|
|
108
|
+
const maxFeesPerGas = (await this.aztecNode.getCurrentMinFees()).mul(1 + this.config.minFeePadding);
|
|
107
109
|
const gasSettings = GasSettings.default({
|
|
108
110
|
maxFeesPerGas
|
|
109
111
|
});
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
112
|
+
await this.withNoMinTxsPerBlock(async ()=>{
|
|
113
|
+
const txHash = await deployMethod.send({
|
|
114
|
+
from: AztecAddress.ZERO,
|
|
115
|
+
fee: {
|
|
116
|
+
gasSettings,
|
|
117
|
+
paymentMethod
|
|
118
|
+
},
|
|
119
|
+
wait: NO_WAIT
|
|
120
|
+
});
|
|
121
|
+
this.log.info(`Sent tx for account deployment with hash ${txHash.toString()}`);
|
|
122
|
+
return waitForTx(this.aztecNode, txHash, {
|
|
120
123
|
timeout: this.config.txMinedWaitSeconds
|
|
121
|
-
})
|
|
124
|
+
});
|
|
125
|
+
});
|
|
122
126
|
this.log.info(`Account deployed at ${address}`);
|
|
123
127
|
// Clean up the consumed bridge claim
|
|
124
128
|
await this.store.deleteBridgeClaim(address);
|
|
@@ -141,47 +145,66 @@ export class BotFactory {
|
|
|
141
145
|
* @returns The TokenContract instance.
|
|
142
146
|
*/ async setupToken(sender) {
|
|
143
147
|
let deploy;
|
|
148
|
+
let tokenInstance;
|
|
144
149
|
const deployOpts = {
|
|
145
150
|
from: sender,
|
|
146
151
|
contractAddressSalt: this.config.tokenSalt,
|
|
147
152
|
universalDeploy: true
|
|
148
153
|
};
|
|
154
|
+
let token;
|
|
149
155
|
if (this.config.contract === SupportedTokenContracts.TokenContract) {
|
|
150
156
|
deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18);
|
|
157
|
+
tokenInstance = await deploy.getInstance(deployOpts);
|
|
158
|
+
token = TokenContract.at(tokenInstance.address, this.wallet);
|
|
151
159
|
} else if (this.config.contract === SupportedTokenContracts.PrivateTokenContract) {
|
|
152
|
-
|
|
160
|
+
// Generate keys for the contract since PrivateToken uses SinglePrivateMutable which requires keys
|
|
161
|
+
const tokenSecretKey = Fr.random();
|
|
162
|
+
const tokenPublicKeys = (await deriveKeys(tokenSecretKey)).publicKeys;
|
|
163
|
+
deploy = PrivateTokenContract.deployWithPublicKeys(tokenPublicKeys, this.wallet, MINT_BALANCE, sender);
|
|
153
164
|
deployOpts.skipInstancePublication = true;
|
|
154
165
|
deployOpts.skipClassPublication = true;
|
|
155
166
|
deployOpts.skipInitialization = false;
|
|
167
|
+
// Register the contract with the secret key before deployment
|
|
168
|
+
tokenInstance = await deploy.getInstance(deployOpts);
|
|
169
|
+
token = PrivateTokenContract.at(tokenInstance.address, this.wallet);
|
|
170
|
+
await this.wallet.registerContract(tokenInstance, PrivateTokenContract.artifact, tokenSecretKey);
|
|
156
171
|
} else {
|
|
157
172
|
throw new Error(`Unsupported token contract type: ${this.config.contract}`);
|
|
158
173
|
}
|
|
159
|
-
const address = (await deploy.getInstance(deployOpts)).address;
|
|
160
|
-
|
|
174
|
+
const address = tokenInstance?.address ?? (await deploy.getInstance(deployOpts)).address;
|
|
175
|
+
const metadata = await this.wallet.getContractMetadata(address);
|
|
176
|
+
if (metadata.isContractPublished) {
|
|
161
177
|
this.log.info(`Token at ${address.toString()} already deployed`);
|
|
162
|
-
|
|
178
|
+
await deploy.register();
|
|
163
179
|
} else {
|
|
164
180
|
this.log.info(`Deploying token contract at ${address.toString()}`);
|
|
165
|
-
const
|
|
166
|
-
|
|
181
|
+
const txHash = await deploy.send({
|
|
182
|
+
...deployOpts,
|
|
183
|
+
wait: NO_WAIT
|
|
184
|
+
});
|
|
167
185
|
this.log.info(`Sent tx for token setup with hash ${txHash.toString()}`);
|
|
168
|
-
|
|
186
|
+
await this.withNoMinTxsPerBlock(async ()=>{
|
|
187
|
+
await waitForTx(this.aztecNode, txHash, {
|
|
169
188
|
timeout: this.config.txMinedWaitSeconds
|
|
170
|
-
})
|
|
189
|
+
});
|
|
190
|
+
return token;
|
|
191
|
+
});
|
|
171
192
|
}
|
|
193
|
+
return token;
|
|
172
194
|
}
|
|
173
195
|
/**
|
|
174
196
|
* Checks if the token contract is deployed and deploys it if necessary.
|
|
175
197
|
* @param wallet - Wallet to deploy the token contract from.
|
|
176
198
|
* @returns The TokenContract instance.
|
|
177
|
-
*/ setupTokenContract(deployer, contractAddressSalt, name, ticker, decimals = 18) {
|
|
199
|
+
*/ async setupTokenContract(deployer, contractAddressSalt, name, ticker, decimals = 18) {
|
|
178
200
|
const deployOpts = {
|
|
179
201
|
from: deployer,
|
|
180
202
|
contractAddressSalt,
|
|
181
203
|
universalDeploy: true
|
|
182
204
|
};
|
|
183
205
|
const deploy = TokenContract.deploy(this.wallet, deployer, name, ticker, decimals);
|
|
184
|
-
|
|
206
|
+
const instance = await this.registerOrDeployContract('Token - ' + name, deploy, deployOpts);
|
|
207
|
+
return TokenContract.at(instance.address, this.wallet);
|
|
185
208
|
}
|
|
186
209
|
async setupAmmContract(deployer, contractAddressSalt, token0, token1, lpToken) {
|
|
187
210
|
const deployOpts = {
|
|
@@ -190,15 +213,16 @@ export class BotFactory {
|
|
|
190
213
|
universalDeploy: true
|
|
191
214
|
};
|
|
192
215
|
const deploy = AMMContract.deploy(this.wallet, token0.address, token1.address, lpToken.address);
|
|
193
|
-
const
|
|
216
|
+
const instance = await this.registerOrDeployContract('AMM', deploy, deployOpts);
|
|
217
|
+
const amm = AMMContract.at(instance.address, this.wallet);
|
|
194
218
|
this.log.info(`AMM deployed at ${amm.address}`);
|
|
195
|
-
const
|
|
196
|
-
from: deployer
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
timeout: this.config.txMinedWaitSeconds
|
|
219
|
+
const minterReceipt = await lpToken.methods.set_minter(amm.address, true).send({
|
|
220
|
+
from: deployer,
|
|
221
|
+
wait: {
|
|
222
|
+
timeout: this.config.txMinedWaitSeconds
|
|
223
|
+
}
|
|
201
224
|
});
|
|
225
|
+
this.log.info(`Set LP token minter to AMM txHash=${minterReceipt.txHash.toString()}`);
|
|
202
226
|
this.log.info(`Liquidity token initialized`);
|
|
203
227
|
return amm;
|
|
204
228
|
}
|
|
@@ -231,45 +255,52 @@ export class BotFactory {
|
|
|
231
255
|
caller: amm.address,
|
|
232
256
|
call: await token1.methods.transfer_to_public_and_prepare_private_balance_increase(liquidityProvider, amm.address, amount1Max, authwitNonce).getFunctionCall()
|
|
233
257
|
});
|
|
234
|
-
const
|
|
258
|
+
const mintReceipt = await new BatchCall(this.wallet, [
|
|
235
259
|
token0.methods.mint_to_private(liquidityProvider, MINT_BALANCE),
|
|
236
260
|
token1.methods.mint_to_private(liquidityProvider, MINT_BALANCE)
|
|
237
261
|
]).send({
|
|
238
|
-
from: liquidityProvider
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
timeout: this.config.txMinedWaitSeconds
|
|
262
|
+
from: liquidityProvider,
|
|
263
|
+
wait: {
|
|
264
|
+
timeout: this.config.txMinedWaitSeconds
|
|
265
|
+
}
|
|
243
266
|
});
|
|
244
|
-
|
|
267
|
+
this.log.info(`Sent mint tx: ${mintReceipt.txHash.toString()}`);
|
|
268
|
+
const addLiquidityReceipt = await amm.methods.add_liquidity(amount0Max, amount1Max, amount0Min, amount1Min, authwitNonce).send({
|
|
245
269
|
from: liquidityProvider,
|
|
246
270
|
authWitnesses: [
|
|
247
271
|
token0Authwit,
|
|
248
272
|
token1Authwit
|
|
249
|
-
]
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
timeout: this.config.txMinedWaitSeconds
|
|
273
|
+
],
|
|
274
|
+
wait: {
|
|
275
|
+
timeout: this.config.txMinedWaitSeconds
|
|
276
|
+
}
|
|
254
277
|
});
|
|
278
|
+
this.log.info(`Sent tx to add liquidity to the AMM: ${addLiquidityReceipt.txHash.toString()}`);
|
|
255
279
|
this.log.info(`Liquidity added`);
|
|
256
280
|
const [newT0Bal, newT1Bal, newLPBal] = await getPrivateBalances();
|
|
257
281
|
this.log.info(`Updated private balances of ${defaultAccountAddress} after minting and funding AMM: token0=${newT0Bal}, token1=${newT1Bal}, lp=${newLPBal}`);
|
|
258
282
|
}
|
|
259
283
|
async registerOrDeployContract(name, deploy, deployOpts) {
|
|
260
|
-
const
|
|
261
|
-
|
|
284
|
+
const instance = await deploy.getInstance(deployOpts);
|
|
285
|
+
const address = instance.address;
|
|
286
|
+
const metadata = await this.wallet.getContractMetadata(address);
|
|
287
|
+
if (metadata.isContractPublished) {
|
|
262
288
|
this.log.info(`Contract ${name} at ${address.toString()} already deployed`);
|
|
263
|
-
|
|
289
|
+
await deploy.register();
|
|
264
290
|
} else {
|
|
265
291
|
this.log.info(`Deploying contract ${name} at ${address.toString()}`);
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
292
|
+
await this.withNoMinTxsPerBlock(async ()=>{
|
|
293
|
+
const txHash = await deploy.send({
|
|
294
|
+
...deployOpts,
|
|
295
|
+
wait: NO_WAIT
|
|
296
|
+
});
|
|
297
|
+
this.log.info(`Sent contract ${name} setup tx with hash ${txHash.toString()}`);
|
|
298
|
+
return waitForTx(this.aztecNode, txHash, {
|
|
270
299
|
timeout: this.config.txMinedWaitSeconds
|
|
271
|
-
})
|
|
300
|
+
});
|
|
301
|
+
});
|
|
272
302
|
}
|
|
303
|
+
return instance;
|
|
273
304
|
}
|
|
274
305
|
/**
|
|
275
306
|
* Mints private and public tokens for the sender if their balance is below the minimum.
|
|
@@ -296,14 +327,16 @@ export class BotFactory {
|
|
|
296
327
|
this.log.info(`Skipping minting as ${minter.toString()} has enough tokens`);
|
|
297
328
|
return;
|
|
298
329
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
330
|
+
await this.withNoMinTxsPerBlock(async ()=>{
|
|
331
|
+
const txHash = await new BatchCall(token.wallet, calls).send({
|
|
332
|
+
from: minter,
|
|
333
|
+
wait: NO_WAIT
|
|
334
|
+
});
|
|
335
|
+
this.log.info(`Sent token mint tx with hash ${txHash.toString()}`);
|
|
336
|
+
return waitForTx(this.aztecNode, txHash, {
|
|
305
337
|
timeout: this.config.txMinedWaitSeconds
|
|
306
|
-
})
|
|
338
|
+
});
|
|
339
|
+
});
|
|
307
340
|
}
|
|
308
341
|
/**
|
|
309
342
|
* Gets or creates a bridge claim for the recipient.
|