@aztec/bot 3.0.0-nightly.20251218 → 3.0.0-nightly.20251220
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/factory.d.ts +1 -1
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +10 -2
- package/package.json +13 -13
- package/src/factory.ts +12 -2
package/dest/factory.d.ts
CHANGED
|
@@ -51,4 +51,4 @@ export declare class BotFactory {
|
|
|
51
51
|
private bridgeL1FeeJuice;
|
|
52
52
|
private withNoMinTxsPerBlock;
|
|
53
53
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBa0J6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRy9ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUEyQixNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU1qRCxxQkFBYSxVQUFVO0lBSW5CLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBQ3RCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQVBsQyxPQUFPLENBQUMsR0FBRyxDQUF1QjtJQUVsQyxZQUNtQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsVUFBVSxFQUNsQixLQUFLLEVBQUUsUUFBUSxFQUNmLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGNBQWMsQ0FBQyw0QkFBZ0IsRUFDOUM7SUFFSjs7O09BR0c7SUFDVSxLQUFLLElBQUksT0FBTyxDQUFDO1FBQzVCLE1BQU0sRUFBRSxVQUFVLENBQUM7UUFDbkIscUJBQXFCLEVBQUUsWUFBWSxDQUFDO1FBQ3BDLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7UUFDNUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUNoQixTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQ3pCLENBQUMsQ0FNRDtJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDL0IsTUFBTSxFQUFFLFVBQVUsQ0FBQztRQUNuQixxQkFBcUIsRUFBRSxZQUFZLENBQUM7UUFDcEMsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUNqQixNQUFNLEVBQUUsYUFBYSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDdEIsSUFBSSxFQUFFLFNBQVMsQ0FBQztLQUNqQixDQUFDLENBc0JEO1lBTWEsWUFBWTtZQVdaLDBCQUEwQjtZQXdDMUIsZ0JBQWdCO1lBZ0JoQixVQUFVO0lBdUN4Qjs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLGtCQUFrQjtZQVlaLGdCQUFnQjtZQW9CaEIsT0FBTztZQThFUCx3QkFBd0I7WUFzQnhCLFVBQVU7WUF3Q1Ysc0JBQXNCO1lBNEJ0QixnQkFBZ0I7WUFnQ2hCLG9CQUFvQjtDQWVuQyJ9
|
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;AAkBzD,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;YAwC1B,gBAAgB;YAgBhB,UAAU;IAuCxB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;YAYZ,gBAAgB;YAoBhB,OAAO;YA8EP,wBAAwB;YAsBxB,UAAU;YAwCV,sBAAsB;YA4BtB,gBAAgB;YAgChB,oBAAoB;CAenC"}
|
package/dest/factory.js
CHANGED
|
@@ -4,6 +4,7 @@ import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
|
4
4
|
import { BatchCall } 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';
|
|
9
10
|
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
@@ -141,6 +142,7 @@ export class BotFactory {
|
|
|
141
142
|
* @returns The TokenContract instance.
|
|
142
143
|
*/ async setupToken(sender) {
|
|
143
144
|
let deploy;
|
|
145
|
+
let tokenInstance;
|
|
144
146
|
const deployOpts = {
|
|
145
147
|
from: sender,
|
|
146
148
|
contractAddressSalt: this.config.tokenSalt,
|
|
@@ -149,14 +151,20 @@ export class BotFactory {
|
|
|
149
151
|
if (this.config.contract === SupportedTokenContracts.TokenContract) {
|
|
150
152
|
deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18);
|
|
151
153
|
} else if (this.config.contract === SupportedTokenContracts.PrivateTokenContract) {
|
|
152
|
-
|
|
154
|
+
// Generate keys for the contract since PrivateToken uses SinglePrivateMutable which requires keys
|
|
155
|
+
const tokenSecretKey = Fr.random();
|
|
156
|
+
const tokenPublicKeys = (await deriveKeys(tokenSecretKey)).publicKeys;
|
|
157
|
+
deploy = PrivateTokenContract.deployWithPublicKeys(tokenPublicKeys, this.wallet, MINT_BALANCE, sender);
|
|
153
158
|
deployOpts.skipInstancePublication = true;
|
|
154
159
|
deployOpts.skipClassPublication = true;
|
|
155
160
|
deployOpts.skipInitialization = false;
|
|
161
|
+
// Register the contract with the secret key before deployment
|
|
162
|
+
tokenInstance = await deploy.getInstance(deployOpts);
|
|
163
|
+
await this.wallet.registerContract(tokenInstance, PrivateTokenContract.artifact, tokenSecretKey);
|
|
156
164
|
} else {
|
|
157
165
|
throw new Error(`Unsupported token contract type: ${this.config.contract}`);
|
|
158
166
|
}
|
|
159
|
-
const address = (await deploy.getInstance(deployOpts)).address;
|
|
167
|
+
const address = tokenInstance?.address ?? (await deploy.getInstance(deployOpts)).address;
|
|
160
168
|
if ((await this.wallet.getContractMetadata(address)).isContractPublished) {
|
|
161
169
|
this.log.info(`Token at ${address.toString()} already deployed`);
|
|
162
170
|
return deploy.register();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/bot",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20251220",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -54,18 +54,18 @@
|
|
|
54
54
|
]
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@aztec/accounts": "3.0.0-nightly.
|
|
58
|
-
"@aztec/aztec.js": "3.0.0-nightly.
|
|
59
|
-
"@aztec/entrypoints": "3.0.0-nightly.
|
|
60
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
61
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
62
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
63
|
-
"@aztec/noir-contracts.js": "3.0.0-nightly.
|
|
64
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
65
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
66
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
67
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
68
|
-
"@aztec/test-wallet": "3.0.0-nightly.
|
|
57
|
+
"@aztec/accounts": "3.0.0-nightly.20251220",
|
|
58
|
+
"@aztec/aztec.js": "3.0.0-nightly.20251220",
|
|
59
|
+
"@aztec/entrypoints": "3.0.0-nightly.20251220",
|
|
60
|
+
"@aztec/ethereum": "3.0.0-nightly.20251220",
|
|
61
|
+
"@aztec/foundation": "3.0.0-nightly.20251220",
|
|
62
|
+
"@aztec/kv-store": "3.0.0-nightly.20251220",
|
|
63
|
+
"@aztec/noir-contracts.js": "3.0.0-nightly.20251220",
|
|
64
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251220",
|
|
65
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20251220",
|
|
66
|
+
"@aztec/stdlib": "3.0.0-nightly.20251220",
|
|
67
|
+
"@aztec/telemetry-client": "3.0.0-nightly.20251220",
|
|
68
|
+
"@aztec/test-wallet": "3.0.0-nightly.20251220",
|
|
69
69
|
"source-map-support": "^0.5.21",
|
|
70
70
|
"tslib": "^2.4.0",
|
|
71
71
|
"zod": "^3.23.8"
|
package/src/factory.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
|
|
12
12
|
import type { L2AmountClaim } from '@aztec/aztec.js/ethereum';
|
|
13
13
|
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
14
|
+
import { deriveKeys } from '@aztec/aztec.js/keys';
|
|
14
15
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
15
16
|
import { waitForL1ToL2MessageReady } from '@aztec/aztec.js/messaging';
|
|
16
17
|
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
@@ -20,6 +21,7 @@ import { Timer } from '@aztec/foundation/timer';
|
|
|
20
21
|
import { AMMContract } from '@aztec/noir-contracts.js/AMM';
|
|
21
22
|
import { PrivateTokenContract } from '@aztec/noir-contracts.js/PrivateToken';
|
|
22
23
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
24
|
+
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
23
25
|
import { GasSettings } from '@aztec/stdlib/gas';
|
|
24
26
|
import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
25
27
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
@@ -165,6 +167,7 @@ export class BotFactory {
|
|
|
165
167
|
*/
|
|
166
168
|
private async setupToken(sender: AztecAddress): Promise<TokenContract | PrivateTokenContract> {
|
|
167
169
|
let deploy: DeployMethod<TokenContract | PrivateTokenContract>;
|
|
170
|
+
let tokenInstance: ContractInstanceWithAddress | undefined;
|
|
168
171
|
const deployOpts: DeployOptions = {
|
|
169
172
|
from: sender,
|
|
170
173
|
contractAddressSalt: this.config.tokenSalt,
|
|
@@ -173,15 +176,22 @@ export class BotFactory {
|
|
|
173
176
|
if (this.config.contract === SupportedTokenContracts.TokenContract) {
|
|
174
177
|
deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18);
|
|
175
178
|
} else if (this.config.contract === SupportedTokenContracts.PrivateTokenContract) {
|
|
176
|
-
|
|
179
|
+
// Generate keys for the contract since PrivateToken uses SinglePrivateMutable which requires keys
|
|
180
|
+
const tokenSecretKey = Fr.random();
|
|
181
|
+
const tokenPublicKeys = (await deriveKeys(tokenSecretKey)).publicKeys;
|
|
182
|
+
deploy = PrivateTokenContract.deployWithPublicKeys(tokenPublicKeys, this.wallet, MINT_BALANCE, sender);
|
|
177
183
|
deployOpts.skipInstancePublication = true;
|
|
178
184
|
deployOpts.skipClassPublication = true;
|
|
179
185
|
deployOpts.skipInitialization = false;
|
|
186
|
+
|
|
187
|
+
// Register the contract with the secret key before deployment
|
|
188
|
+
tokenInstance = await deploy.getInstance(deployOpts);
|
|
189
|
+
await this.wallet.registerContract(tokenInstance, PrivateTokenContract.artifact, tokenSecretKey);
|
|
180
190
|
} else {
|
|
181
191
|
throw new Error(`Unsupported token contract type: ${this.config.contract}`);
|
|
182
192
|
}
|
|
183
193
|
|
|
184
|
-
const address = (await deploy.getInstance(deployOpts)).address;
|
|
194
|
+
const address = tokenInstance?.address ?? (await deploy.getInstance(deployOpts)).address;
|
|
185
195
|
if ((await this.wallet.getContractMetadata(address)).isContractPublished) {
|
|
186
196
|
this.log.info(`Token at ${address.toString()} already deployed`);
|
|
187
197
|
return deploy.register();
|