@aztec/bot 0.54.0 → 0.55.1
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/bot.d.ts +3 -3
- package/dest/bot.d.ts.map +1 -1
- package/dest/bot.js +28 -10
- package/dest/config.d.ts +6 -0
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +17 -1
- package/dest/factory.d.ts +2 -1
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +32 -7
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -2
- package/dest/utils.d.ts +3 -0
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +8 -1
- package/package.json +10 -10
- package/src/bot.ts +35 -13
- package/src/config.ts +22 -0
- package/src/factory.ts +44 -10
- package/src/index.ts +7 -1
- package/src/utils.ts +10 -0
package/dest/bot.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { type AztecAddress, type Wallet } from '@aztec/aztec.js';
|
|
2
2
|
import { type AztecNode, type PXE } from '@aztec/circuit-types';
|
|
3
|
-
import { type TokenContract } from '@aztec/noir-contracts.js';
|
|
3
|
+
import { type EasyPrivateTokenContract, type TokenContract } from '@aztec/noir-contracts.js';
|
|
4
4
|
import { type BotConfig } from './config.js';
|
|
5
5
|
export declare class Bot {
|
|
6
6
|
readonly wallet: Wallet;
|
|
7
|
-
readonly token: TokenContract;
|
|
7
|
+
readonly token: TokenContract | EasyPrivateTokenContract;
|
|
8
8
|
readonly recipient: AztecAddress;
|
|
9
9
|
config: BotConfig;
|
|
10
10
|
private log;
|
|
11
|
-
protected constructor(wallet: Wallet, token: TokenContract, recipient: AztecAddress, config: BotConfig);
|
|
11
|
+
protected constructor(wallet: Wallet, token: TokenContract | EasyPrivateTokenContract, recipient: AztecAddress, config: BotConfig);
|
|
12
12
|
static create(config: BotConfig, dependencies?: {
|
|
13
13
|
pxe?: PXE;
|
|
14
14
|
node?: AztecNode;
|
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,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,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
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,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,qBAAa,GAAG;aAII,MAAM,EAAE,MAAM;aACd,KAAK,EAAE,aAAa,GAAG,wBAAwB;aAC/C,SAAS,EAAE,YAAY;IAChC,MAAM,EAAE,SAAS;IAN1B,OAAO,CAAC,GAAG,CAAkC;IAE7C,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;IA0DH,WAAW;;;;;;;;;;IAoBxB,OAAO,CAAC,iBAAiB;CAmB1B"}
|
package/dest/bot.js
CHANGED
|
@@ -2,7 +2,7 @@ import { BatchCall, FeeJuicePaymentMethod, NoFeePaymentMethod, createDebugLogger
|
|
|
2
2
|
import { Gas, GasSettings } from '@aztec/circuits.js';
|
|
3
3
|
import { times } from '@aztec/foundation/collection';
|
|
4
4
|
import { BotFactory } from './factory.js';
|
|
5
|
-
import { getBalances } from './utils.js';
|
|
5
|
+
import { getBalances, getPrivateBalance, isStandardTokenContract } from './utils.js';
|
|
6
6
|
const TRANSFER_AMOUNT = 1;
|
|
7
7
|
export class Bot {
|
|
8
8
|
constructor(wallet, token, recipient, config) {
|
|
@@ -26,10 +26,14 @@ export class Bot {
|
|
|
26
26
|
const { token, recipient, wallet } = this;
|
|
27
27
|
const sender = wallet.getAddress();
|
|
28
28
|
this.log.verbose(`Preparing tx with ${feePaymentMethod} fee with ${privateTransfersPerTx} private and ${publicTransfersPerTx} public transfers`, logCtx);
|
|
29
|
-
const calls = [
|
|
30
|
-
|
|
31
|
-
...times(
|
|
32
|
-
|
|
29
|
+
const calls = [];
|
|
30
|
+
if (isStandardTokenContract(token)) {
|
|
31
|
+
calls.push(...times(privateTransfersPerTx, () => token.methods.transfer(recipient, TRANSFER_AMOUNT).request()));
|
|
32
|
+
calls.push(...times(publicTransfersPerTx, () => token.methods.transfer_public(sender, recipient, TRANSFER_AMOUNT, 0).request()));
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
calls.push(...times(privateTransfersPerTx, () => token.methods.transfer(TRANSFER_AMOUNT, sender, recipient, sender).request()));
|
|
36
|
+
}
|
|
33
37
|
const opts = this.getSendMethodOpts();
|
|
34
38
|
const batch = new BatchCall(wallet, calls);
|
|
35
39
|
this.log.verbose(`Creating batch execution request with ${calls.length} calls`, logCtx);
|
|
@@ -54,10 +58,24 @@ export class Bot {
|
|
|
54
58
|
this.log.info(`Tx ${receipt.txHash} mined in block ${receipt.blockNumber}`, logCtx);
|
|
55
59
|
}
|
|
56
60
|
async getBalances() {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
if (isStandardTokenContract(this.token)) {
|
|
62
|
+
return {
|
|
63
|
+
sender: await getBalances(this.token, this.wallet.getAddress()),
|
|
64
|
+
recipient: await getBalances(this.token, this.recipient),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return {
|
|
69
|
+
sender: {
|
|
70
|
+
privateBalance: await getPrivateBalance(this.token, this.wallet.getAddress()),
|
|
71
|
+
publicBalance: 0n,
|
|
72
|
+
},
|
|
73
|
+
recipient: {
|
|
74
|
+
privateBalance: await getPrivateBalance(this.token, this.recipient),
|
|
75
|
+
publicBalance: 0n,
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
61
79
|
}
|
|
62
80
|
getSendMethodOpts() {
|
|
63
81
|
const sender = this.wallet.getAddress();
|
|
@@ -78,4 +96,4 @@ export class Bot {
|
|
|
78
96
|
return { estimateGas, fee: { paymentMethod, gasSettings }, skipPublicSimulation };
|
|
79
97
|
}
|
|
80
98
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2JvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULHFCQUFxQixFQUNyQixrQkFBa0IsRUFHbEIsaUJBQWlCLEdBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXJGLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUUxQixNQUFNLE9BQU8sR0FBRztJQUdkLFlBQ2tCLE1BQWMsRUFDZCxLQUErQyxFQUMvQyxTQUF1QixFQUNoQyxNQUFpQjtRQUhSLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUEwQztRQUMvQyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFObEIsUUFBRyxHQUFHLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBTzFDLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFpQixFQUFFLGVBQWdELEVBQUU7UUFDdkYsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEYsT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sWUFBWSxD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
|
package/dest/config.d.ts
CHANGED
|
@@ -2,6 +2,10 @@ import { Fr } from '@aztec/circuits.js';
|
|
|
2
2
|
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
3
3
|
declare const botFollowChain: readonly ["NONE", "PENDING", "PROVEN"];
|
|
4
4
|
type BotFollowChain = (typeof botFollowChain)[number];
|
|
5
|
+
export declare enum SupportedTokenContracts {
|
|
6
|
+
TokenContract = "TokenContract",
|
|
7
|
+
EasyPrivateTokenContract = "EasyPrivateTokenContract"
|
|
8
|
+
}
|
|
5
9
|
export type BotConfig = {
|
|
6
10
|
/** The URL to the Aztec node to check for tx pool status. */
|
|
7
11
|
nodeUrl: string | undefined;
|
|
@@ -37,6 +41,8 @@ export type BotConfig = {
|
|
|
37
41
|
l2GasLimit: number | undefined;
|
|
38
42
|
/** DA gas limit for the tx (empty to have the bot trigger an estimate gas). */
|
|
39
43
|
daGasLimit: number | undefined;
|
|
44
|
+
/** Token contract to use */
|
|
45
|
+
contract: SupportedTokenContracts;
|
|
40
46
|
};
|
|
41
47
|
export declare const botConfigMappings: ConfigMappingsType<BotConfig>;
|
|
42
48
|
export declare function getBotConfigFromEnv(): BotConfig;
|
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,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAElC,QAAA,MAAM,cAAc,wCAAyC,CAAC;AAC9D,KAAK,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,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;
|
|
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;AAElC,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;CACnC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CA6G3D,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C"}
|
package/dest/config.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { Fr } from '@aztec/circuits.js';
|
|
2
2
|
import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper, } from '@aztec/foundation/config';
|
|
3
3
|
const botFollowChain = ['NONE', 'PENDING', 'PROVEN'];
|
|
4
|
+
export var SupportedTokenContracts;
|
|
5
|
+
(function (SupportedTokenContracts) {
|
|
6
|
+
SupportedTokenContracts["TokenContract"] = "TokenContract";
|
|
7
|
+
SupportedTokenContracts["EasyPrivateTokenContract"] = "EasyPrivateTokenContract";
|
|
8
|
+
})(SupportedTokenContracts || (SupportedTokenContracts = {}));
|
|
4
9
|
export const botConfigMappings = {
|
|
5
10
|
nodeUrl: {
|
|
6
11
|
env: 'AZTEC_NODE_URL',
|
|
@@ -95,6 +100,17 @@ export const botConfigMappings = {
|
|
|
95
100
|
description: 'DA gas limit for the tx (empty to have the bot trigger an estimate gas).',
|
|
96
101
|
...optionalNumberConfigHelper(),
|
|
97
102
|
},
|
|
103
|
+
contract: {
|
|
104
|
+
env: 'BOT_TOKEN_CONTRACT',
|
|
105
|
+
description: 'Token contract to use',
|
|
106
|
+
defaultValue: SupportedTokenContracts.TokenContract,
|
|
107
|
+
parseEnv(val) {
|
|
108
|
+
if (!Object.values(SupportedTokenContracts).includes(val)) {
|
|
109
|
+
throw new Error(`Invalid value for BOT_TOKEN_CONTRACT: ${val}. Valid values: ${Object.values(SupportedTokenContracts).join(', ')}`);
|
|
110
|
+
}
|
|
111
|
+
return val;
|
|
112
|
+
},
|
|
113
|
+
},
|
|
98
114
|
};
|
|
99
115
|
export function getBotConfigFromEnv() {
|
|
100
116
|
return getConfigFromMappings(botConfigMappings);
|
|
@@ -102,4 +118,4 @@ export function getBotConfigFromEnv() {
|
|
|
102
118
|
export function getBotDefaultConfig() {
|
|
103
119
|
return getDefaultConfig(botConfigMappings);
|
|
104
120
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEMsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQiwwQkFBMEIsR0FDM0IsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFVLENBQUM7QUFHOUQsTUFBTSxDQUFOLElBQVksdUJBR1g7QUFIRCxXQUFZLHVCQUF1QjtJQUNqQywwREFBK0IsQ0FBQTtJQUMvQixnRkFBcUQsQ0FBQTtBQUN2RCxDQUFDLEVBSFcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQUdsQztBQXlDRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBa0M7SUFDOUQsT0FBTyxFQUFFO1FBQ1AsR0FBRyxFQUFFLGdCQUFnQjtRQUNyQixXQUFXLEVBQUUsd0RBQXdEO0tBQ3RFO0lBQ0QsTUFBTSxFQUFFO1FBQ04sR0FBRyxFQUFFLGFBQWE7UUFDbEIsV0FBVyxFQUFFLHlFQUF5RTtLQUN2RjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxpQkFBaUI7UUFDdEIsV0FBVyxFQUFFLDZDQUE2QztRQUMxRCxRQUFRLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQzdDLFlBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFO0tBQzFCO0lBQ0QseUJBQXlCLEVBQUU7UUFDekIsR0FBRyxFQUFFLGlDQUFpQztRQUN0QyxXQUFXLEVBQUUsNENBQTRDO1FBQ3pELFFBQVEsRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7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
|
package/dest/factory.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type AztecNode, type PXE } from '@aztec/circuit-types';
|
|
2
|
+
import { EasyPrivateTokenContract } from '@aztec/noir-contracts.js';
|
|
2
3
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
4
|
import { type BotConfig } from './config.js';
|
|
4
5
|
export declare class BotFactory {
|
|
@@ -16,7 +17,7 @@ export declare class BotFactory {
|
|
|
16
17
|
*/
|
|
17
18
|
setup(): Promise<{
|
|
18
19
|
wallet: import("@aztec/aztec.js").AccountWalletWithSecretKey;
|
|
19
|
-
token: TokenContract;
|
|
20
|
+
token: TokenContract | EasyPrivateTokenContract;
|
|
20
21
|
pxe: PXE;
|
|
21
22
|
recipient: import("@aztec/aztec.js").AztecAddress;
|
|
22
23
|
}>;
|
package/dest/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"
|
|
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,0BAA0B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/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,CAAkC;gBAEhB,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;IAuB1B;;OAEG;YACW,iBAAiB;IAK/B;;;;OAIG;YACW,UAAU;IAiCxB;;;OAGG;YACW,UAAU;CAwCzB"}
|
package/dest/factory.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { getSchnorrAccount } from '@aztec/accounts/schnorr';
|
|
2
|
-
import { BatchCall, createDebugLogger, createPXEClient } from '@aztec/aztec.js';
|
|
2
|
+
import { BatchCall, createDebugLogger, createPXEClient, } from '@aztec/aztec.js';
|
|
3
3
|
import { Fr, deriveSigningKey } from '@aztec/circuits.js';
|
|
4
|
+
import { EasyPrivateTokenContract } from '@aztec/noir-contracts.js';
|
|
4
5
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
5
|
-
import {
|
|
6
|
+
import { SupportedTokenContracts } from './config.js';
|
|
7
|
+
import { getBalances, getPrivateBalance, isStandardTokenContract } from './utils.js';
|
|
6
8
|
const MINT_BALANCE = 1e12;
|
|
7
9
|
const MIN_BALANCE = 1e3;
|
|
8
10
|
export class BotFactory {
|
|
@@ -75,8 +77,21 @@ export class BotFactory {
|
|
|
75
77
|
* @returns The TokenContract instance.
|
|
76
78
|
*/
|
|
77
79
|
async setupToken(wallet) {
|
|
78
|
-
|
|
80
|
+
let deploy;
|
|
79
81
|
const deployOpts = { contractAddressSalt: this.config.tokenSalt, universalDeploy: true };
|
|
82
|
+
if (this.config.contract === SupportedTokenContracts.TokenContract) {
|
|
83
|
+
deploy = TokenContract.deploy(wallet, wallet.getAddress(), 'BotToken', 'BOT', 18);
|
|
84
|
+
}
|
|
85
|
+
else if (this.config.contract === SupportedTokenContracts.EasyPrivateTokenContract) {
|
|
86
|
+
deploy = EasyPrivateTokenContract.deploy(wallet, MINT_BALANCE, wallet.getAddress(), wallet.getAddress());
|
|
87
|
+
deployOpts.skipPublicDeployment = true;
|
|
88
|
+
deployOpts.skipClassRegistration = true;
|
|
89
|
+
deployOpts.skipInitialization = false;
|
|
90
|
+
deployOpts.skipPublicSimulation = true;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
throw new Error(`Unsupported token contract type: ${this.config.contract}`);
|
|
94
|
+
}
|
|
80
95
|
const address = deploy.getInstance(deployOpts).address;
|
|
81
96
|
if (await this.pxe.isContractPubliclyDeployed(address)) {
|
|
82
97
|
this.log.info(`Token at ${address.toString()} already deployed`);
|
|
@@ -101,13 +116,23 @@ export class BotFactory {
|
|
|
101
116
|
*/
|
|
102
117
|
async mintTokens(token) {
|
|
103
118
|
const sender = token.wallet.getAddress();
|
|
104
|
-
const
|
|
119
|
+
const isStandardToken = isStandardTokenContract(token);
|
|
120
|
+
let privateBalance = 0n;
|
|
121
|
+
let publicBalance = 0n;
|
|
122
|
+
if (isStandardToken) {
|
|
123
|
+
({ privateBalance, publicBalance } = await getBalances(token, sender));
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
privateBalance = await getPrivateBalance(token, sender);
|
|
127
|
+
}
|
|
105
128
|
const calls = [];
|
|
106
129
|
if (privateBalance < MIN_BALANCE) {
|
|
107
130
|
this.log.info(`Minting private tokens for ${sender.toString()}`);
|
|
108
|
-
calls.push(
|
|
131
|
+
calls.push(isStandardToken
|
|
132
|
+
? token.methods.privately_mint_private_note(MINT_BALANCE).request()
|
|
133
|
+
: token.methods.mint(MINT_BALANCE, sender, sender).request());
|
|
109
134
|
}
|
|
110
|
-
if (publicBalance < MIN_BALANCE) {
|
|
135
|
+
if (isStandardToken && publicBalance < MIN_BALANCE) {
|
|
111
136
|
this.log.info(`Minting public tokens for ${sender.toString()}`);
|
|
112
137
|
calls.push(token.methods.mint_public(sender, MINT_BALANCE).request());
|
|
113
138
|
}
|
|
@@ -126,4 +151,4 @@ export class BotFactory {
|
|
|
126
151
|
await sentTx.wait({ timeout: this.config.txMinedWaitSeconds });
|
|
127
152
|
}
|
|
128
153
|
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFFTCxTQUFTLEVBR1QsaUJBQWlCLEVBQ2pCLGVBQWUsR0FDaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRS9ELE9BQU8sRUFBa0IsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUM7QUFDMUIsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBRXhCLE1BQU0sT0FBTyxVQUFVO0lBS3JCLFlBQTZCLE1BQWlCLEVBQUUsZUFBZ0QsRUFBRTtRQUFyRSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBRnRDLFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUczQyxJQUFJLE1BQU0sQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLHdGQUF3RixDQUFDLENBQUM7UUFDNUcsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBRUQsSUFBSSxD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
|
package/dest/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Bot } from './bot.js';
|
|
2
2
|
export { BotRunner } from './runner.js';
|
|
3
|
-
export { BotConfig, getBotConfigFromEnv, getBotDefaultConfig, botConfigMappings } from './config.js';
|
|
3
|
+
export { BotConfig, getBotConfigFromEnv, getBotDefaultConfig, botConfigMappings, SupportedTokenContracts, } from './config.js';
|
|
4
4
|
export { createBotRunnerRpcServer } from './rpc.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Bot } from './bot.js';
|
|
2
2
|
export { BotRunner } from './runner.js';
|
|
3
|
-
export { getBotConfigFromEnv, getBotDefaultConfig, botConfigMappings } from './config.js';
|
|
3
|
+
export { getBotConfigFromEnv, getBotDefaultConfig, botConfigMappings, SupportedTokenContracts, } from './config.js';
|
|
4
4
|
export { createBotRunnerRpcServer } from './rpc.js';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQix1QkFBdUIsR0FDeEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDIn0=
|
package/dest/utils.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type AztecAddress } from '@aztec/circuits.js';
|
|
2
|
+
import { type EasyPrivateTokenContract } from '@aztec/noir-contracts.js';
|
|
2
3
|
import { type TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
4
|
/**
|
|
4
5
|
* Gets the private and public balance of the given token for the given address.
|
|
@@ -10,4 +11,6 @@ export declare function getBalances(token: TokenContract, who: AztecAddress): Pr
|
|
|
10
11
|
privateBalance: bigint;
|
|
11
12
|
publicBalance: bigint;
|
|
12
13
|
}>;
|
|
14
|
+
export declare function getPrivateBalance(token: EasyPrivateTokenContract, who: AztecAddress): Promise<bigint>;
|
|
15
|
+
export declare function isStandardTokenContract(token: TokenContract | EasyPrivateTokenContract): token is TokenContract;
|
|
13
16
|
//# sourceMappingURL=utils.d.ts.map
|
package/dest/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAI5D"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAI5D;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAG3G;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,wBAAwB,GAAG,KAAK,IAAI,aAAa,CAE/G"}
|
package/dest/utils.js
CHANGED
|
@@ -9,4 +9,11 @@ export async function getBalances(token, who) {
|
|
|
9
9
|
const publicBalance = await token.methods.balance_of_public(who).simulate();
|
|
10
10
|
return { privateBalance, publicBalance };
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
export async function getPrivateBalance(token, who) {
|
|
13
|
+
const privateBalance = await token.methods.get_balance(who).simulate();
|
|
14
|
+
return privateBalance;
|
|
15
|
+
}
|
|
16
|
+
export function isStandardTokenContract(token) {
|
|
17
|
+
return 'mint_public' in token.methods;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FDL0IsS0FBb0IsRUFDcEIsR0FBaUI7SUFFakIsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlFLE1BQU0sYUFBYSxHQUFHLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEtBQStCLEVBQUUsR0FBaUI7SUFDeEYsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2RSxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEtBQStDO0lBQ3JGLE9BQU8sYUFBYSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7QUFDeEMsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/bot",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.55.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js"
|
|
@@ -49,15 +49,15 @@
|
|
|
49
49
|
]
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@aztec/accounts": "0.
|
|
53
|
-
"@aztec/aztec.js": "0.
|
|
54
|
-
"@aztec/circuit-types": "0.
|
|
55
|
-
"@aztec/circuits.js": "0.
|
|
56
|
-
"@aztec/entrypoints": "0.
|
|
57
|
-
"@aztec/foundation": "0.
|
|
58
|
-
"@aztec/noir-contracts.js": "0.
|
|
59
|
-
"@aztec/protocol-contracts": "0.
|
|
60
|
-
"@aztec/types": "0.
|
|
52
|
+
"@aztec/accounts": "0.55.1",
|
|
53
|
+
"@aztec/aztec.js": "0.55.1",
|
|
54
|
+
"@aztec/circuit-types": "0.55.1",
|
|
55
|
+
"@aztec/circuits.js": "0.55.1",
|
|
56
|
+
"@aztec/entrypoints": "0.55.1",
|
|
57
|
+
"@aztec/foundation": "0.55.1",
|
|
58
|
+
"@aztec/noir-contracts.js": "0.55.1",
|
|
59
|
+
"@aztec/protocol-contracts": "0.55.1",
|
|
60
|
+
"@aztec/types": "0.55.1",
|
|
61
61
|
"source-map-support": "^0.5.21",
|
|
62
62
|
"tslib": "^2.4.0"
|
|
63
63
|
},
|
package/src/bot.ts
CHANGED
|
@@ -10,11 +10,11 @@ import {
|
|
|
10
10
|
import { type AztecNode, type FunctionCall, type PXE } from '@aztec/circuit-types';
|
|
11
11
|
import { Gas, GasSettings } from '@aztec/circuits.js';
|
|
12
12
|
import { times } from '@aztec/foundation/collection';
|
|
13
|
-
import { type TokenContract } from '@aztec/noir-contracts.js';
|
|
13
|
+
import { type EasyPrivateTokenContract, type TokenContract } from '@aztec/noir-contracts.js';
|
|
14
14
|
|
|
15
15
|
import { type BotConfig } from './config.js';
|
|
16
16
|
import { BotFactory } from './factory.js';
|
|
17
|
-
import { getBalances } from './utils.js';
|
|
17
|
+
import { getBalances, getPrivateBalance, isStandardTokenContract } from './utils.js';
|
|
18
18
|
|
|
19
19
|
const TRANSFER_AMOUNT = 1;
|
|
20
20
|
|
|
@@ -23,7 +23,7 @@ export class Bot {
|
|
|
23
23
|
|
|
24
24
|
protected constructor(
|
|
25
25
|
public readonly wallet: Wallet,
|
|
26
|
-
public readonly token: TokenContract,
|
|
26
|
+
public readonly token: TokenContract | EasyPrivateTokenContract,
|
|
27
27
|
public readonly recipient: AztecAddress,
|
|
28
28
|
public config: BotConfig,
|
|
29
29
|
) {}
|
|
@@ -50,12 +50,21 @@ export class Bot {
|
|
|
50
50
|
logCtx,
|
|
51
51
|
);
|
|
52
52
|
|
|
53
|
-
const calls: FunctionCall[] = [
|
|
54
|
-
|
|
55
|
-
...times(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
const calls: FunctionCall[] = [];
|
|
54
|
+
if (isStandardTokenContract(token)) {
|
|
55
|
+
calls.push(...times(privateTransfersPerTx, () => token.methods.transfer(recipient, TRANSFER_AMOUNT).request()));
|
|
56
|
+
calls.push(
|
|
57
|
+
...times(publicTransfersPerTx, () =>
|
|
58
|
+
token.methods.transfer_public(sender, recipient, TRANSFER_AMOUNT, 0).request(),
|
|
59
|
+
),
|
|
60
|
+
);
|
|
61
|
+
} else {
|
|
62
|
+
calls.push(
|
|
63
|
+
...times(privateTransfersPerTx, () =>
|
|
64
|
+
token.methods.transfer(TRANSFER_AMOUNT, sender, recipient, sender).request(),
|
|
65
|
+
),
|
|
66
|
+
);
|
|
67
|
+
}
|
|
59
68
|
|
|
60
69
|
const opts = this.getSendMethodOpts();
|
|
61
70
|
const batch = new BatchCall(wallet, calls);
|
|
@@ -88,10 +97,23 @@ export class Bot {
|
|
|
88
97
|
}
|
|
89
98
|
|
|
90
99
|
public async getBalances() {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
100
|
+
if (isStandardTokenContract(this.token)) {
|
|
101
|
+
return {
|
|
102
|
+
sender: await getBalances(this.token, this.wallet.getAddress()),
|
|
103
|
+
recipient: await getBalances(this.token, this.recipient),
|
|
104
|
+
};
|
|
105
|
+
} else {
|
|
106
|
+
return {
|
|
107
|
+
sender: {
|
|
108
|
+
privateBalance: await getPrivateBalance(this.token, this.wallet.getAddress()),
|
|
109
|
+
publicBalance: 0n,
|
|
110
|
+
},
|
|
111
|
+
recipient: {
|
|
112
|
+
privateBalance: await getPrivateBalance(this.token, this.recipient),
|
|
113
|
+
publicBalance: 0n,
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
}
|
|
95
117
|
}
|
|
96
118
|
|
|
97
119
|
private getSendMethodOpts(): SendMethodOptions {
|
package/src/config.ts
CHANGED
|
@@ -11,6 +11,11 @@ import {
|
|
|
11
11
|
const botFollowChain = ['NONE', 'PENDING', 'PROVEN'] as const;
|
|
12
12
|
type BotFollowChain = (typeof botFollowChain)[number];
|
|
13
13
|
|
|
14
|
+
export enum SupportedTokenContracts {
|
|
15
|
+
TokenContract = 'TokenContract',
|
|
16
|
+
EasyPrivateTokenContract = 'EasyPrivateTokenContract',
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
export type BotConfig = {
|
|
15
20
|
/** The URL to the Aztec node to check for tx pool status. */
|
|
16
21
|
nodeUrl: string | undefined;
|
|
@@ -46,6 +51,8 @@ export type BotConfig = {
|
|
|
46
51
|
l2GasLimit: number | undefined;
|
|
47
52
|
/** DA gas limit for the tx (empty to have the bot trigger an estimate gas). */
|
|
48
53
|
daGasLimit: number | undefined;
|
|
54
|
+
/** Token contract to use */
|
|
55
|
+
contract: SupportedTokenContracts;
|
|
49
56
|
};
|
|
50
57
|
|
|
51
58
|
export const botConfigMappings: ConfigMappingsType<BotConfig> = {
|
|
@@ -142,6 +149,21 @@ export const botConfigMappings: ConfigMappingsType<BotConfig> = {
|
|
|
142
149
|
description: 'DA gas limit for the tx (empty to have the bot trigger an estimate gas).',
|
|
143
150
|
...optionalNumberConfigHelper(),
|
|
144
151
|
},
|
|
152
|
+
contract: {
|
|
153
|
+
env: 'BOT_TOKEN_CONTRACT',
|
|
154
|
+
description: 'Token contract to use',
|
|
155
|
+
defaultValue: SupportedTokenContracts.TokenContract,
|
|
156
|
+
parseEnv(val) {
|
|
157
|
+
if (!Object.values(SupportedTokenContracts).includes(val as any)) {
|
|
158
|
+
throw new Error(
|
|
159
|
+
`Invalid value for BOT_TOKEN_CONTRACT: ${val}. Valid values: ${Object.values(SupportedTokenContracts).join(
|
|
160
|
+
', ',
|
|
161
|
+
)}`,
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
return val as SupportedTokenContracts;
|
|
165
|
+
},
|
|
166
|
+
},
|
|
145
167
|
};
|
|
146
168
|
|
|
147
169
|
export function getBotConfigFromEnv(): BotConfig {
|
package/src/factory.ts
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import { getSchnorrAccount } from '@aztec/accounts/schnorr';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
type AccountWallet,
|
|
4
|
+
BatchCall,
|
|
5
|
+
type DeployMethod,
|
|
6
|
+
type DeployOptions,
|
|
7
|
+
createDebugLogger,
|
|
8
|
+
createPXEClient,
|
|
9
|
+
} from '@aztec/aztec.js';
|
|
3
10
|
import { type AztecNode, type FunctionCall, type PXE } from '@aztec/circuit-types';
|
|
4
11
|
import { Fr, deriveSigningKey } from '@aztec/circuits.js';
|
|
12
|
+
import { EasyPrivateTokenContract } from '@aztec/noir-contracts.js';
|
|
5
13
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
6
14
|
|
|
7
|
-
import { type BotConfig } from './config.js';
|
|
8
|
-
import { getBalances } from './utils.js';
|
|
15
|
+
import { type BotConfig, SupportedTokenContracts } from './config.js';
|
|
16
|
+
import { getBalances, getPrivateBalance, isStandardTokenContract } from './utils.js';
|
|
9
17
|
|
|
10
18
|
const MINT_BALANCE = 1e12;
|
|
11
19
|
const MIN_BALANCE = 1e3;
|
|
@@ -86,9 +94,21 @@ export class BotFactory {
|
|
|
86
94
|
* @param wallet - Wallet to deploy the token contract from.
|
|
87
95
|
* @returns The TokenContract instance.
|
|
88
96
|
*/
|
|
89
|
-
private async setupToken(wallet: AccountWallet): Promise<TokenContract> {
|
|
90
|
-
|
|
91
|
-
const deployOpts = { contractAddressSalt: this.config.tokenSalt, universalDeploy: true };
|
|
97
|
+
private async setupToken(wallet: AccountWallet): Promise<TokenContract | EasyPrivateTokenContract> {
|
|
98
|
+
let deploy: DeployMethod<TokenContract | EasyPrivateTokenContract>;
|
|
99
|
+
const deployOpts: DeployOptions = { contractAddressSalt: this.config.tokenSalt, universalDeploy: true };
|
|
100
|
+
if (this.config.contract === SupportedTokenContracts.TokenContract) {
|
|
101
|
+
deploy = TokenContract.deploy(wallet, wallet.getAddress(), 'BotToken', 'BOT', 18);
|
|
102
|
+
} else if (this.config.contract === SupportedTokenContracts.EasyPrivateTokenContract) {
|
|
103
|
+
deploy = EasyPrivateTokenContract.deploy(wallet, MINT_BALANCE, wallet.getAddress(), wallet.getAddress());
|
|
104
|
+
deployOpts.skipPublicDeployment = true;
|
|
105
|
+
deployOpts.skipClassRegistration = true;
|
|
106
|
+
deployOpts.skipInitialization = false;
|
|
107
|
+
deployOpts.skipPublicSimulation = true;
|
|
108
|
+
} else {
|
|
109
|
+
throw new Error(`Unsupported token contract type: ${this.config.contract}`);
|
|
110
|
+
}
|
|
111
|
+
|
|
92
112
|
const address = deploy.getInstance(deployOpts).address;
|
|
93
113
|
if (await this.pxe.isContractPubliclyDeployed(address)) {
|
|
94
114
|
this.log.info(`Token at ${address.toString()} already deployed`);
|
|
@@ -111,15 +131,29 @@ export class BotFactory {
|
|
|
111
131
|
* Mints private and public tokens for the sender if their balance is below the minimum.
|
|
112
132
|
* @param token - Token contract.
|
|
113
133
|
*/
|
|
114
|
-
private async mintTokens(token: TokenContract) {
|
|
134
|
+
private async mintTokens(token: TokenContract | EasyPrivateTokenContract) {
|
|
115
135
|
const sender = token.wallet.getAddress();
|
|
116
|
-
const
|
|
136
|
+
const isStandardToken = isStandardTokenContract(token);
|
|
137
|
+
let privateBalance = 0n;
|
|
138
|
+
let publicBalance = 0n;
|
|
139
|
+
|
|
140
|
+
if (isStandardToken) {
|
|
141
|
+
({ privateBalance, publicBalance } = await getBalances(token, sender));
|
|
142
|
+
} else {
|
|
143
|
+
privateBalance = await getPrivateBalance(token, sender);
|
|
144
|
+
}
|
|
145
|
+
|
|
117
146
|
const calls: FunctionCall[] = [];
|
|
118
147
|
if (privateBalance < MIN_BALANCE) {
|
|
119
148
|
this.log.info(`Minting private tokens for ${sender.toString()}`);
|
|
120
|
-
|
|
149
|
+
|
|
150
|
+
calls.push(
|
|
151
|
+
isStandardToken
|
|
152
|
+
? token.methods.privately_mint_private_note(MINT_BALANCE).request()
|
|
153
|
+
: token.methods.mint(MINT_BALANCE, sender, sender).request(),
|
|
154
|
+
);
|
|
121
155
|
}
|
|
122
|
-
if (publicBalance < MIN_BALANCE) {
|
|
156
|
+
if (isStandardToken && publicBalance < MIN_BALANCE) {
|
|
123
157
|
this.log.info(`Minting public tokens for ${sender.toString()}`);
|
|
124
158
|
calls.push(token.methods.mint_public(sender, MINT_BALANCE).request());
|
|
125
159
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
export { Bot } from './bot.js';
|
|
2
2
|
export { BotRunner } from './runner.js';
|
|
3
|
-
export {
|
|
3
|
+
export {
|
|
4
|
+
BotConfig,
|
|
5
|
+
getBotConfigFromEnv,
|
|
6
|
+
getBotDefaultConfig,
|
|
7
|
+
botConfigMappings,
|
|
8
|
+
SupportedTokenContracts,
|
|
9
|
+
} from './config.js';
|
|
4
10
|
export { createBotRunnerRpcServer } from './rpc.js';
|
package/src/utils.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type AztecAddress } from '@aztec/circuits.js';
|
|
2
|
+
import { type EasyPrivateTokenContract } from '@aztec/noir-contracts.js';
|
|
2
3
|
import { type TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -15,3 +16,12 @@ export async function getBalances(
|
|
|
15
16
|
const publicBalance = await token.methods.balance_of_public(who).simulate();
|
|
16
17
|
return { privateBalance, publicBalance };
|
|
17
18
|
}
|
|
19
|
+
|
|
20
|
+
export async function getPrivateBalance(token: EasyPrivateTokenContract, who: AztecAddress): Promise<bigint> {
|
|
21
|
+
const privateBalance = await token.methods.get_balance(who).simulate();
|
|
22
|
+
return privateBalance;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function isStandardTokenContract(token: TokenContract | EasyPrivateTokenContract): token is TokenContract {
|
|
26
|
+
return 'mint_public' in token.methods;
|
|
27
|
+
}
|