@aztec/bot 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2

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/runner.js CHANGED
@@ -1,161 +1,157 @@
1
- import { __classPrivateFieldGet, __classPrivateFieldIn, __esDecorate, __runInitializers, __setFunctionName } from "tslib";
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
2
7
  import { createAztecNodeClient, createLogger } from '@aztec/aztec.js';
3
8
  import { RunningPromise } from '@aztec/foundation/running-promise';
4
9
  import { makeTracedFetch, trackSpan } from '@aztec/telemetry-client';
5
10
  import { Bot } from './bot.js';
6
- let BotRunner = (() => {
7
- var _BotRunner_instances, _a, _BotRunner_createBot, _BotRunner_work_get;
8
- let _instanceExtraInitializers = [];
9
- let _doSetup_decorators;
10
- let _private_work_decorators;
11
- let _private_work_descriptor;
12
- return _a = class BotRunner {
13
- constructor(config, dependencies) {
14
- _BotRunner_instances.add(this);
15
- this.config = (__runInitializers(this, _instanceExtraInitializers), config);
16
- this.log = createLogger('bot');
17
- this.consecutiveErrors = 0;
18
- this.healthy = true;
19
- this.tracer = dependencies.telemetry.getTracer('Bot');
20
- this.pxe = dependencies.pxe;
21
- if (!dependencies.node && !config.nodeUrl) {
22
- throw new Error(`Missing node URL in config or dependencies`);
23
- }
24
- this.node = dependencies.node ?? createAztecNodeClient(config.nodeUrl, makeTracedFetch([1, 2, 3], true));
25
- this.runningPromise = new RunningPromise(() => __classPrivateFieldGet(this, _BotRunner_instances, "a", _BotRunner_work_get).call(this), this.log, config.txIntervalSeconds * 1000);
11
+ export class BotRunner {
12
+ config;
13
+ log;
14
+ bot;
15
+ pxe;
16
+ node;
17
+ runningPromise;
18
+ consecutiveErrors;
19
+ healthy;
20
+ tracer;
21
+ constructor(config, dependencies){
22
+ this.config = config;
23
+ this.log = createLogger('bot');
24
+ this.consecutiveErrors = 0;
25
+ this.healthy = true;
26
+ this.tracer = dependencies.telemetry.getTracer('Bot');
27
+ this.pxe = dependencies.pxe;
28
+ if (!dependencies.node && !config.nodeUrl) {
29
+ throw new Error(`Missing node URL in config or dependencies`);
30
+ }
31
+ this.node = dependencies.node ?? createAztecNodeClient(config.nodeUrl, makeTracedFetch([
32
+ 1,
33
+ 2,
34
+ 3
35
+ ], true));
36
+ this.runningPromise = new RunningPromise(()=>this.#work(), this.log, config.txIntervalSeconds * 1000);
37
+ }
38
+ /** Initializes the bot if needed. Blocks until the bot setup is finished. */ async setup() {
39
+ if (!this.bot) {
40
+ await this.doSetup();
41
+ }
42
+ }
43
+ async doSetup() {
44
+ this.log.verbose(`Setting up bot`);
45
+ await this.#createBot();
46
+ this.log.info(`Bot set up completed`);
47
+ }
48
+ /**
49
+ * Initializes the bot if needed and starts sending txs at regular intervals.
50
+ * Blocks until the bot setup is finished.
51
+ */ async start() {
52
+ await this.setup();
53
+ if (!this.runningPromise.isRunning()) {
54
+ this.log.info(`Starting bot with interval of ${this.config.txIntervalSeconds}s`);
55
+ this.runningPromise.start();
56
+ }
57
+ }
58
+ /**
59
+ * Stops sending txs. Returns once all ongoing txs are finished.
60
+ */ async stop() {
61
+ if (this.runningPromise.isRunning()) {
62
+ this.log.verbose(`Stopping bot`);
63
+ await this.runningPromise.stop();
64
+ }
65
+ this.log.info(`Stopped bot`);
66
+ }
67
+ isHealthy() {
68
+ return this.runningPromise.isRunning() && this.healthy;
69
+ }
70
+ /** Returns whether the bot is running. */ isRunning() {
71
+ return this.runningPromise.isRunning();
72
+ }
73
+ /**
74
+ * Updates the bot config and recreates the bot. Will stop and restart the bot automatically if it was
75
+ * running when this method was called. Blocks until the new bot is set up.
76
+ */ async update(config) {
77
+ this.log.verbose(`Updating bot config`);
78
+ const wasRunning = this.isRunning();
79
+ if (wasRunning) {
80
+ await this.stop();
81
+ }
82
+ this.config = {
83
+ ...this.config,
84
+ ...config
85
+ };
86
+ this.runningPromise.setPollingIntervalMS(this.config.txIntervalSeconds * 1000);
87
+ await this.#createBot();
88
+ this.log.info(`Bot config updated`);
89
+ if (wasRunning) {
90
+ await this.start();
91
+ }
92
+ }
93
+ /**
94
+ * Triggers a single iteration of the bot. Requires the bot to be initialized.
95
+ * Blocks until the run is finished.
96
+ */ async run() {
97
+ if (!this.bot) {
98
+ this.log.error(`Trying to run with uninitialized bot`);
99
+ throw new Error(`Bot is not initialized`);
100
+ }
101
+ let bot;
102
+ try {
103
+ bot = await this.bot;
104
+ } catch (err) {
105
+ this.log.error(`Error awaiting bot set up: ${err}`);
106
+ throw err;
107
+ }
108
+ try {
109
+ await bot.run();
110
+ this.consecutiveErrors = 0;
111
+ } catch (err) {
112
+ this.consecutiveErrors += 1;
113
+ this.log.error(`Error running bot consecutiveCount=${this.consecutiveErrors}: ${err}`);
114
+ throw err;
115
+ }
116
+ }
117
+ /** Returns the current configuration for the bot. */ getConfig() {
118
+ return Promise.resolve(this.config);
119
+ }
120
+ async #createBot() {
121
+ try {
122
+ this.bot = Bot.create(this.config, {
123
+ pxe: this.pxe,
124
+ node: this.node
125
+ });
126
+ await this.bot;
127
+ } catch (err) {
128
+ this.log.error(`Error setting up bot: ${err}`);
129
+ throw err;
130
+ }
131
+ }
132
+ async #work() {
133
+ if (this.config.maxPendingTxs > 0) {
134
+ const pendingTxs = await this.node.getPendingTxs();
135
+ if (pendingTxs.length >= this.config.maxPendingTxs) {
136
+ this.log.verbose(`Not sending bot tx since node has ${pendingTxs.length} pending txs`);
137
+ return;
26
138
  }
27
- /** Initializes the bot if needed. Blocks until the bot setup is finished. */
28
- async setup() {
29
- if (!this.bot) {
30
- await this.doSetup();
31
- }
139
+ }
140
+ try {
141
+ await this.run();
142
+ } catch (err) {
143
+ // Already logged in run()
144
+ if (this.config.maxConsecutiveErrors > 0 && this.consecutiveErrors >= this.config.maxConsecutiveErrors) {
145
+ this.log.error(`Too many errors bot is unhealthy`);
146
+ this.healthy = false;
32
147
  }
33
- async doSetup() {
34
- this.log.verbose(`Setting up bot`);
35
- await __classPrivateFieldGet(this, _BotRunner_instances, "m", _BotRunner_createBot).call(this);
36
- this.log.info(`Bot set up completed`);
37
- }
38
- /**
39
- * Initializes the bot if needed and starts sending txs at regular intervals.
40
- * Blocks until the bot setup is finished.
41
- */
42
- async start() {
43
- await this.setup();
44
- if (!this.runningPromise.isRunning()) {
45
- this.log.info(`Starting bot with interval of ${this.config.txIntervalSeconds}s`);
46
- this.runningPromise.start();
47
- }
48
- }
49
- /**
50
- * Stops sending txs. Returns once all ongoing txs are finished.
51
- */
52
- async stop() {
53
- if (this.runningPromise.isRunning()) {
54
- this.log.verbose(`Stopping bot`);
55
- await this.runningPromise.stop();
56
- }
57
- this.log.info(`Stopped bot`);
58
- }
59
- isHealthy() {
60
- return this.runningPromise.isRunning() && this.healthy;
61
- }
62
- /** Returns whether the bot is running. */
63
- isRunning() {
64
- return this.runningPromise.isRunning();
65
- }
66
- /**
67
- * Updates the bot config and recreates the bot. Will stop and restart the bot automatically if it was
68
- * running when this method was called. Blocks until the new bot is set up.
69
- */
70
- async update(config) {
71
- this.log.verbose(`Updating bot config`);
72
- const wasRunning = this.isRunning();
73
- if (wasRunning) {
74
- await this.stop();
75
- }
76
- this.config = { ...this.config, ...config };
77
- this.runningPromise.setPollingIntervalMS(this.config.txIntervalSeconds * 1000);
78
- await __classPrivateFieldGet(this, _BotRunner_instances, "m", _BotRunner_createBot).call(this);
79
- this.log.info(`Bot config updated`);
80
- if (wasRunning) {
81
- await this.start();
82
- }
83
- }
84
- /**
85
- * Triggers a single iteration of the bot. Requires the bot to be initialized.
86
- * Blocks until the run is finished.
87
- */
88
- async run() {
89
- if (!this.bot) {
90
- this.log.error(`Trying to run with uninitialized bot`);
91
- throw new Error(`Bot is not initialized`);
92
- }
93
- let bot;
94
- try {
95
- bot = await this.bot;
96
- }
97
- catch (err) {
98
- this.log.error(`Error awaiting bot set up: ${err}`);
99
- throw err;
100
- }
101
- try {
102
- await bot.run();
103
- this.consecutiveErrors = 0;
104
- }
105
- catch (err) {
106
- this.consecutiveErrors += 1;
107
- this.log.error(`Error running bot consecutiveCount=${this.consecutiveErrors}: ${err}`);
108
- throw err;
109
- }
110
- }
111
- /** Returns the current configuration for the bot. */
112
- getConfig() {
113
- return Promise.resolve(this.config);
114
- }
115
- },
116
- _BotRunner_instances = new WeakSet(),
117
- _BotRunner_createBot = async function _BotRunner_createBot() {
118
- try {
119
- this.bot = Bot.create(this.config, { pxe: this.pxe, node: this.node });
120
- await this.bot;
121
- }
122
- catch (err) {
123
- this.log.error(`Error setting up bot: ${err}`);
124
- throw err;
125
- }
126
- },
127
- _BotRunner_work_get = function _BotRunner_work_get() { return _private_work_descriptor.value; },
128
- (() => {
129
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
130
- _doSetup_decorators = [trackSpan('Bot.setup')];
131
- _private_work_decorators = [trackSpan('Bot.work')];
132
- __esDecorate(_a, null, _doSetup_decorators, { kind: "method", name: "doSetup", static: false, private: false, access: { has: obj => "doSetup" in obj, get: obj => obj.doSetup }, metadata: _metadata }, null, _instanceExtraInitializers);
133
- __esDecorate(_a, _private_work_descriptor = { value: __setFunctionName(async function () {
134
- if (this.config.maxPendingTxs > 0) {
135
- const pendingTxs = await this.node.getPendingTxs();
136
- if (pendingTxs.length >= this.config.maxPendingTxs) {
137
- this.log.verbose(`Not sending bot tx since node has ${pendingTxs.length} pending txs`);
138
- return;
139
- }
140
- }
141
- try {
142
- await this.run();
143
- }
144
- catch (err) {
145
- // Already logged in run()
146
- if (this.config.maxConsecutiveErrors > 0 && this.consecutiveErrors >= this.config.maxConsecutiveErrors) {
147
- this.log.error(`Too many errors bot is unhealthy`);
148
- this.healthy = false;
149
- }
150
- }
151
- if (!this.healthy && this.config.stopWhenUnhealthy) {
152
- this.log.fatal(`Stopping bot due to errors`);
153
- process.exit(1); // workaround docker not restarting the container if its unhealthy. We have to exit instead
154
- }
155
- }, "#work") }, _private_work_decorators, { kind: "method", name: "#work", static: false, private: true, access: { has: obj => __classPrivateFieldIn(_BotRunner_instances, obj), get: obj => __classPrivateFieldGet(obj, _BotRunner_instances, "a", _BotRunner_work_get) }, metadata: _metadata }, null, _instanceExtraInitializers);
156
- if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
157
- })(),
158
- _a;
159
- })();
160
- export { BotRunner };
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUE0QixxQkFBcUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFxRCxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztJQUlsQixTQUFTOzs7Ozs7c0JBQVQsU0FBUztZQVdwQixZQUNVLE1BQWlCLEVBQ3pCLFlBQXlFOztnQkFEakUsV0FBTSxJQVpMLG1EQUFTLEVBWVYsTUFBTSxFQUFXO2dCQVhuQixRQUFHLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUsxQixzQkFBaUIsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLFlBQU8sR0FBRyxJQUFJLENBQUM7Z0JBUXJCLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztnQkFDaEUsQ0FBQztnQkFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLE9BQVEsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzFHLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQUEsSUFBSSxpREFBTSxNQUFWLElBQUksQ0FBUSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzFHLENBQUM7WUFFRCw2RUFBNkU7WUFDdEUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2QsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3ZCLENBQUM7WUFDSCxDQUFDO1lBR08sS0FBSyxDQUFDLE9BQU87Z0JBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ25DLE1BQU0sdUJBQUEsSUFBSSxrREFBVyxNQUFmLElBQUksQ0FBYSxDQUFDO2dCQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFFRDs7O2VBR0c7WUFDSSxLQUFLLENBQUMsS0FBSztnQkFDaEIsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztvQkFDakYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDOUIsQ0FBQztZQUNILENBQUM7WUFFRDs7ZUFFRztZQUNJLEtBQUssQ0FBQyxJQUFJO2dCQUNmLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDakMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNuQyxDQUFDO2dCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFFTSxTQUFTO2dCQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3pELENBQUM7WUFFRCwwQ0FBMEM7WUFDbkMsU0FBUztnQkFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekMsQ0FBQztZQUVEOzs7ZUFHRztZQUNJLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBaUI7Z0JBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDZixNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEIsQ0FBQztnQkFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDL0UsTUFBTSx1QkFBQSxJQUFJLGtEQUFXLE1BQWYsSUFBSSxDQUFhLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ3BDLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ2YsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JCLENBQUM7WUFDSCxDQUFDO1lBRUQ7OztlQUdHO1lBQ0ksS0FBSyxDQUFDLEdBQUc7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO29CQUN2RCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7Z0JBQzVDLENBQUM7Z0JBRUQsSUFBSSxHQUFHLENBQUM7Z0JBQ1IsSUFBSSxDQUFDO29CQUNILEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDcEQsTUFBTSxHQUFHLENBQUM7Z0JBQ1osQ0FBQztnQkFFRCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDO29CQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsSUFBSSxDQUFDLGlCQUFpQixLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQ3ZGLE1BQU0sR0FBRyxDQUFDO2dCQUNaLENBQUM7WUFDSCxDQUFDO1lBRUQscURBQXFEO1lBQzlDLFNBQVM7Z0JBQ2QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxDQUFDOzs7K0JBRUQsS0FBSztZQUNILElBQUksQ0FBQztnQkFDSCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDdkUsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2pCLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHlCQUF5QixHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLEdBQUcsQ0FBQztZQUNaLENBQUM7UUFDSCxDQUFDOzs7O21DQW5HQSxTQUFTLENBQUMsV0FBVyxDQUFDO3dDQXFHdEIsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQXBHdEIsc0tBQWMsT0FBTyw2REFJcEI7WUFpR0QsOENBQUEseUJBQUEsS0FBSztvQkFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQ25ELElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDOzRCQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsVUFBVSxDQUFDLE1BQU0sY0FBYyxDQUFDLENBQUM7NEJBQ3ZGLE9BQU87d0JBQ1QsQ0FBQztvQkFDSCxDQUFDO29CQUVELElBQUksQ0FBQzt3QkFDSCxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDbkIsQ0FBQztvQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO3dCQUNiLDBCQUEwQjt3QkFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDOzRCQUN2RyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDOzRCQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzt3QkFDdkIsQ0FBQztvQkFDSCxDQUFDO29CQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQzt3QkFDN0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDJGQUEyRjtvQkFDOUcsQ0FBQztnQkFDSCxDQUFDLFVBQUEseVRBQUE7Ozs7O1NBNUpVLFNBQVMifQ==
148
+ }
149
+ if (!this.healthy && this.config.stopWhenUnhealthy) {
150
+ this.log.fatal(`Stopping bot due to errors`);
151
+ process.exit(1); // workaround docker not restarting the container if its unhealthy. We have to exit instead
152
+ }
153
+ }
154
+ }
155
+ _ts_decorate([
156
+ trackSpan('Bot.setup')
157
+ ], BotRunner.prototype, "doSetup", null);
package/dest/utils.js CHANGED
@@ -3,11 +3,13 @@
3
3
  * @param token - Token contract.
4
4
  * @param who - Address to get the balance for.
5
5
  * @returns - Private and public token balances as bigints.
6
- */
7
- export async function getBalances(token, who) {
6
+ */ export async function getBalances(token, who) {
8
7
  const privateBalance = await token.methods.balance_of_private(who).simulate();
9
8
  const publicBalance = await token.methods.balance_of_public(who).simulate();
10
- return { privateBalance, publicBalance };
9
+ return {
10
+ privateBalance,
11
+ publicBalance
12
+ };
11
13
  }
12
14
  export async function getPrivateBalance(token, who) {
13
15
  const privateBalance = await token.methods.get_balance(who).simulate();
@@ -16,4 +18,3 @@ export async function getPrivateBalance(token, who) {
16
18
  export function isStandardTokenContract(token) {
17
19
  return 'mint_to_public' in token.methods;
18
20
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FDL0IsS0FBb0IsRUFDcEIsR0FBaUI7SUFFakIsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlFLE1BQU0sYUFBYSxHQUFHLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEtBQStCLEVBQUUsR0FBaUI7SUFDeEYsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2RSxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEtBQStDO0lBQ3JGLE9BQU8sZ0JBQWdCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUMzQyxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/bot",
3
- "version": "0.74.0",
3
+ "version": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -16,7 +16,7 @@
16
16
  "formatting": "run -T prettier --check ./src && run -T eslint ./src",
17
17
  "formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
18
18
  "bb": "node --no-warnings ./dest/bb/index.js",
19
- "test": "HARDWARE_CONCURRENCY=${HARDWARE_CONCURRENCY:-16} RAYON_NUM_THREADS=${RAYON_NUM_THREADS:-4} NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
19
+ "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
20
20
  },
21
21
  "jest": {
22
22
  "moduleNameMapper": {
@@ -52,16 +52,16 @@
52
52
  ]
53
53
  },
54
54
  "dependencies": {
55
- "@aztec/accounts": "0.74.0",
56
- "@aztec/aztec.js": "0.74.0",
57
- "@aztec/circuit-types": "0.74.0",
58
- "@aztec/circuits.js": "0.74.0",
59
- "@aztec/entrypoints": "0.74.0",
60
- "@aztec/foundation": "0.74.0",
61
- "@aztec/noir-contracts.js": "0.74.0",
62
- "@aztec/protocol-contracts": "0.74.0",
63
- "@aztec/telemetry-client": "0.74.0",
64
- "@aztec/types": "0.74.0",
55
+ "@aztec/accounts": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
56
+ "@aztec/aztec.js": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
57
+ "@aztec/circuit-types": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
58
+ "@aztec/circuits.js": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
59
+ "@aztec/entrypoints": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
60
+ "@aztec/foundation": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
61
+ "@aztec/noir-contracts.js": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
62
+ "@aztec/protocol-contracts": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
63
+ "@aztec/telemetry-client": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
64
+ "@aztec/types": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
65
65
  "source-map-support": "^0.5.21",
66
66
  "tslib": "^2.4.0",
67
67
  "zod": "^3.23.8"
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { Bot } from './bot.js';
2
2
  export { BotRunner } from './runner.js';
3
3
  export {
4
- BotConfig,
4
+ type BotConfig,
5
5
  getBotConfigFromEnv,
6
6
  getBotDefaultConfig,
7
7
  botConfigMappings,
package/dest/bot.d.ts DELETED
@@ -1,33 +0,0 @@
1
- import { type AztecAddress, type Wallet } from '@aztec/aztec.js';
2
- import { type AztecNode, type PXE } from '@aztec/circuit-types';
3
- import { type EasyPrivateTokenContract } from '@aztec/noir-contracts.js/EasyPrivateToken';
4
- import { type TokenContract } from '@aztec/noir-contracts.js/Token';
5
- import { type BotConfig } from './config.js';
6
- export declare class Bot {
7
- readonly wallet: Wallet;
8
- readonly token: TokenContract | EasyPrivateTokenContract;
9
- readonly recipient: AztecAddress;
10
- config: BotConfig;
11
- private log;
12
- private attempts;
13
- private successes;
14
- protected constructor(wallet: Wallet, token: TokenContract | EasyPrivateTokenContract, recipient: AztecAddress, config: BotConfig);
15
- static create(config: BotConfig, dependencies?: {
16
- pxe?: PXE;
17
- node?: AztecNode;
18
- }): Promise<Bot>;
19
- updateConfig(config: Partial<BotConfig>): void;
20
- run(): Promise<void>;
21
- getBalances(): Promise<{
22
- sender: {
23
- privateBalance: bigint;
24
- publicBalance: bigint;
25
- };
26
- recipient: {
27
- privateBalance: bigint;
28
- publicBalance: bigint;
29
- };
30
- }>;
31
- private getSendMethodOpts;
32
- }
33
- //# sourceMappingURL=bot.d.ts.map
package/dest/bot.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EAKjB,KAAK,MAAM,EAEZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,SAAS,EAAqB,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAGnF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,qBAAa,GAAG;aAOI,MAAM,EAAE,MAAM;aACd,KAAK,EAAE,aAAa,GAAG,wBAAwB;aAC/C,SAAS,EAAE,YAAY;IAChC,MAAM,EAAE,SAAS;IAT1B,OAAO,CAAC,GAAG,CAAuB;IAElC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,SAAS,CAAa;IAE9B,SAAS,aACS,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GAAG,wBAAwB,EAC/C,SAAS,EAAE,YAAY,EAChC,MAAM,EAAE,SAAS;WAGb,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,GAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAKjG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;IAKjC,GAAG;IAoEH,WAAW;;;;;;;;;;IAoBxB,OAAO,CAAC,iBAAiB;CAmB1B"}
package/dest/config.d.ts DELETED
@@ -1,162 +0,0 @@
1
- import { Fr } from '@aztec/circuits.js';
2
- import { type ConfigMappingsType } from '@aztec/foundation/config';
3
- import { z } from 'zod';
4
- declare const BotFollowChain: readonly ["NONE", "PENDING", "PROVEN"];
5
- type BotFollowChain = (typeof BotFollowChain)[number];
6
- export declare enum SupportedTokenContracts {
7
- TokenContract = "TokenContract",
8
- EasyPrivateTokenContract = "EasyPrivateTokenContract"
9
- }
10
- export type BotConfig = {
11
- /** The URL to the Aztec node to check for tx pool status. */
12
- nodeUrl: string | undefined;
13
- /** URL to the PXE for sending txs, or undefined if an in-proc PXE is used. */
14
- pxeUrl: string | undefined;
15
- /** Signing private key for the sender account. */
16
- senderPrivateKey: Fr;
17
- /** Encryption secret for a recipient account. */
18
- recipientEncryptionSecret: Fr;
19
- /** Salt for the token contract deployment. */
20
- tokenSalt: Fr;
21
- /** Every how many seconds should a new tx be sent. */
22
- txIntervalSeconds: number;
23
- /** How many private token transfers are executed per tx. */
24
- privateTransfersPerTx: number;
25
- /** How many public token transfers are executed per tx. */
26
- publicTransfersPerTx: number;
27
- /** How to handle fee payments. */
28
- feePaymentMethod: 'fee_juice' | 'none';
29
- /** True to not automatically setup or start the bot on initialization. */
30
- noStart: boolean;
31
- /** How long to wait for a tx to be mined before reporting an error. */
32
- txMinedWaitSeconds: number;
33
- /** Whether to wait for txs to be proven, to be mined, or no wait at all. */
34
- followChain: BotFollowChain;
35
- /** Do not send a tx if the node's tx pool already has this many pending txs. */
36
- maxPendingTxs: number;
37
- /** Whether to flush after sending each 'setup' transaction */
38
- flushSetupTransactions: boolean;
39
- /** Whether to skip public simulation of txs before sending them. */
40
- skipPublicSimulation: boolean;
41
- /** L2 gas limit for the tx (empty to have the bot trigger an estimate gas). */
42
- l2GasLimit: number | undefined;
43
- /** DA gas limit for the tx (empty to have the bot trigger an estimate gas). */
44
- daGasLimit: number | undefined;
45
- /** Token contract to use */
46
- contract: SupportedTokenContracts;
47
- /** The maximum number of consecutive errors before the bot shuts down */
48
- maxConsecutiveErrors: number;
49
- /** Stops the bot if service becomes unhealthy */
50
- stopWhenUnhealthy: boolean;
51
- };
52
- export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
53
- nodeUrl: z.ZodOptional<z.ZodString>;
54
- pxeUrl: z.ZodOptional<z.ZodString>;
55
- senderPrivateKey: z.ZodType<Fr, any, string>;
56
- recipientEncryptionSecret: z.ZodType<Fr, any, string>;
57
- tokenSalt: z.ZodType<Fr, any, string>;
58
- txIntervalSeconds: z.ZodNumber;
59
- privateTransfersPerTx: z.ZodNumber;
60
- publicTransfersPerTx: z.ZodNumber;
61
- feePaymentMethod: z.ZodUnion<[z.ZodLiteral<"fee_juice">, z.ZodLiteral<"none">]>;
62
- noStart: z.ZodBoolean;
63
- txMinedWaitSeconds: z.ZodNumber;
64
- followChain: z.ZodEnum<["NONE", "PENDING", "PROVEN"]>;
65
- maxPendingTxs: z.ZodNumber;
66
- flushSetupTransactions: z.ZodBoolean;
67
- skipPublicSimulation: z.ZodBoolean;
68
- l2GasLimit: z.ZodOptional<z.ZodNumber>;
69
- daGasLimit: z.ZodOptional<z.ZodNumber>;
70
- contract: z.ZodNativeEnum<typeof SupportedTokenContracts>;
71
- maxConsecutiveErrors: z.ZodNumber;
72
- stopWhenUnhealthy: z.ZodBoolean;
73
- }, "strip", z.ZodTypeAny, {
74
- senderPrivateKey: Fr;
75
- recipientEncryptionSecret: Fr;
76
- tokenSalt: Fr;
77
- txIntervalSeconds: number;
78
- privateTransfersPerTx: number;
79
- publicTransfersPerTx: number;
80
- feePaymentMethod: "fee_juice" | "none";
81
- noStart: boolean;
82
- txMinedWaitSeconds: number;
83
- followChain: "NONE" | "PENDING" | "PROVEN";
84
- maxPendingTxs: number;
85
- flushSetupTransactions: boolean;
86
- skipPublicSimulation: boolean;
87
- contract: SupportedTokenContracts;
88
- maxConsecutiveErrors: number;
89
- stopWhenUnhealthy: boolean;
90
- nodeUrl?: string | undefined;
91
- pxeUrl?: string | undefined;
92
- l2GasLimit?: number | undefined;
93
- daGasLimit?: number | undefined;
94
- }, {
95
- senderPrivateKey: string;
96
- recipientEncryptionSecret: string;
97
- tokenSalt: string;
98
- txIntervalSeconds: number;
99
- privateTransfersPerTx: number;
100
- publicTransfersPerTx: number;
101
- feePaymentMethod: "fee_juice" | "none";
102
- noStart: boolean;
103
- txMinedWaitSeconds: number;
104
- followChain: "NONE" | "PENDING" | "PROVEN";
105
- maxPendingTxs: number;
106
- flushSetupTransactions: boolean;
107
- skipPublicSimulation: boolean;
108
- contract: SupportedTokenContracts;
109
- maxConsecutiveErrors: number;
110
- stopWhenUnhealthy: boolean;
111
- nodeUrl?: string | undefined;
112
- pxeUrl?: string | undefined;
113
- l2GasLimit?: number | undefined;
114
- daGasLimit?: number | undefined;
115
- }>, {
116
- senderPrivateKey: Fr;
117
- recipientEncryptionSecret: Fr;
118
- tokenSalt: Fr;
119
- txIntervalSeconds: number;
120
- privateTransfersPerTx: number;
121
- publicTransfersPerTx: number;
122
- feePaymentMethod: "fee_juice" | "none";
123
- noStart: boolean;
124
- txMinedWaitSeconds: number;
125
- followChain: "NONE" | "PENDING" | "PROVEN";
126
- maxPendingTxs: number;
127
- flushSetupTransactions: boolean;
128
- skipPublicSimulation: boolean;
129
- contract: SupportedTokenContracts;
130
- maxConsecutiveErrors: number;
131
- stopWhenUnhealthy: boolean;
132
- nodeUrl: string | undefined;
133
- pxeUrl: string | undefined;
134
- l2GasLimit: number | undefined;
135
- daGasLimit: number | undefined;
136
- }, {
137
- senderPrivateKey: string;
138
- recipientEncryptionSecret: string;
139
- tokenSalt: string;
140
- txIntervalSeconds: number;
141
- privateTransfersPerTx: number;
142
- publicTransfersPerTx: number;
143
- feePaymentMethod: "fee_juice" | "none";
144
- noStart: boolean;
145
- txMinedWaitSeconds: number;
146
- followChain: "NONE" | "PENDING" | "PROVEN";
147
- maxPendingTxs: number;
148
- flushSetupTransactions: boolean;
149
- skipPublicSimulation: boolean;
150
- contract: SupportedTokenContracts;
151
- maxConsecutiveErrors: number;
152
- stopWhenUnhealthy: boolean;
153
- nodeUrl?: string | undefined;
154
- pxeUrl?: string | undefined;
155
- l2GasLimit?: number | undefined;
156
- daGasLimit?: number | undefined;
157
- }>;
158
- export declare const botConfigMappings: ConfigMappingsType<BotConfig>;
159
- export declare function getBotConfigFromEnv(): BotConfig;
160
- export declare function getBotDefaultConfig(): BotConfig;
161
- export {};
162
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAGlC,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,wBAAwB,6BAA6B;CACtD;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,8EAA8E;IAC9E,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,kDAAkD;IAClD,gBAAgB,EAAE,EAAE,CAAC;IACrB,iDAAiD;IACjD,yBAAyB,EAAE,EAAE,CAAC;IAC9B,8CAA8C;IAC9C,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,GAAG,MAAM,CAAC;IACvC,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,oEAAoE;IACpE,oBAAoB,EAAE,OAAO,CAAC;IAC9B,+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;CAC5B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BK,CAAC;AAElC,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAuH3D,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C"}
package/dest/factory.d.ts DELETED
@@ -1,45 +0,0 @@
1
- import { type AztecNode, type PXE } from '@aztec/circuit-types';
2
- import { EasyPrivateTokenContract } from '@aztec/noir-contracts.js/EasyPrivateToken';
3
- import { TokenContract } from '@aztec/noir-contracts.js/Token';
4
- import { type BotConfig } from './config.js';
5
- export declare class BotFactory {
6
- private readonly config;
7
- private pxe;
8
- private node?;
9
- private log;
10
- constructor(config: BotConfig, dependencies?: {
11
- pxe?: PXE;
12
- node?: AztecNode;
13
- });
14
- /**
15
- * Initializes a new bot by setting up the sender account, registering the recipient,
16
- * deploying the token contract, and minting tokens if necessary.
17
- */
18
- setup(): Promise<{
19
- wallet: import("@aztec/aztec.js").AccountWalletWithSecretKey;
20
- token: TokenContract | EasyPrivateTokenContract;
21
- pxe: PXE;
22
- recipient: import("@aztec/aztec.js").AztecAddress;
23
- }>;
24
- /**
25
- * Checks if the sender account contract is initialized, and initializes it if necessary.
26
- * @returns The sender wallet.
27
- */
28
- private setupAccount;
29
- /**
30
- * Registers the recipient for txs in the pxe.
31
- */
32
- private registerRecipient;
33
- /**
34
- * Checks if the token contract is deployed and deploys it if necessary.
35
- * @param wallet - Wallet to deploy the token contract from.
36
- * @returns The TokenContract instance.
37
- */
38
- private setupToken;
39
- /**
40
- * Mints private and public tokens for the sender if their balance is below the minimum.
41
- * @param token - Token contract.
42
- */
43
- private mintTokens;
44
- }
45
- //# sourceMappingURL=factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,SAAS,EAAqB,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,aAAa,CAAC;AAMtE,qBAAa,UAAU;IAKT,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,GAAG,CAAuB;gBAEL,MAAM,EAAE,SAAS,EAAE,YAAY,GAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAO;IAmBlG;;;OAGG;IACU,KAAK;;;;;;IAQlB;;;OAGG;YACW,YAAY;IAwB1B;;OAEG;YACW,iBAAiB;IAK/B;;;;OAIG;YACW,UAAU;IAiCxB;;;OAGG;YACW,UAAU;CAyCzB"}