@aztec/bot 5.0.0-nightly.20260504 → 5.0.0-nightly.20260512
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 +48 -43
- package/package.json +15 -15
- package/src/factory.ts +34 -40
package/dest/factory.d.ts
CHANGED
|
@@ -66,4 +66,4 @@ export declare class BotFactory {
|
|
|
66
66
|
private getMinFees;
|
|
67
67
|
private withNoMinTxsPerBlock;
|
|
68
68
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBcUJ6RCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR2xFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUEyQixNQUFNLGFBQWEsQ0FBQztBQUV0RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVFqRCxxQkFBYSxVQUFVO0lBSW5CLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBQ3RCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQVBsQyxPQUFPLENBQUMsR0FBRyxDQUF1QjtJQUVsQyxZQUNtQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsY0FBYyxFQUN0QixLQUFLLEVBQUUsUUFBUSxFQUNmLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGNBQWMsQ0FBQyw0QkFBZ0IsRUFLakQ7SUFFRDs7O09BR0c7SUFDVSxLQUFLLElBQUksT0FBTyxDQUFDO1FBQzVCLE1BQU0sRUFBRSxjQUFjLENBQUM7UUFDdkIscUJBQXFCLEVBQUUsWUFBWSxDQUFDO1FBQ3BDLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7UUFDNUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUNoQixTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQ3pCLENBQUMsQ0FPRDtJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDL0IsTUFBTSxFQUFFLGNBQWMsQ0FBQztRQUN2QixxQkFBcUIsRUFBRSxZQUFZLENBQUM7UUFDcEMsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUNqQixNQUFNLEVBQUUsYUFBYSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDdEIsSUFBSSxFQUFFLFNBQVMsQ0FBQztLQUNqQixDQUFDLENBNEJEO0lBRUQ7OztPQUdHO0lBQ1UsZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUN0QyxNQUFNLEVBQUUsY0FBYyxDQUFDO1FBQ3ZCLHFCQUFxQixFQUFFLFlBQVksQ0FBQztRQUNwQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ3ZCLElBQUksRUFBRSxTQUFTLENBQUM7UUFDaEIsUUFBUSxFQUFFLHdCQUF3QixDQUFDO1FBQ25DLGFBQWEsRUFBRSxNQUFNLENBQUM7S0FDdkIsQ0FBQyxDQTJERDtZQUVhLGlCQUFpQjtZQVdqQixZQUFZO1lBV1osMEJBQTBCO1lBdUMxQixnQkFBZ0I7WUFlaEIsaUNBQWlDO1lBY2pDLHlDQUF5QztZQWtCekMsZ0JBQWdCO1lBNEJoQixVQUFVO1lBeUNWLGtCQUFrQjtZQWFsQixnQkFBZ0I7WUEyQmhCLE9BQU87WUErRlAsd0JBQXdCO1lBNkR4QixxQkFBcUI7WUF1RHJCLFVBQVU7WUFpRFYsc0JBQXNCO1lBMkJ0QixnQkFBZ0I7WUFnQ2hCLFVBQVU7WUFZVixvQkFBb0I7Q0FlbkMifQ==
|
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;AAqBzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAItE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQjD,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,cAAc,EACtB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,SAAS,EACpB,cAAc,CAAC,4BAAgB,EAKjD;IAED;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC;QAC5B,MAAM,EAAE,cAAc,CAAC;QACvB,qBAAqB,EAAE,YAAY,CAAC;QACpC,KAAK,EAAE,aAAa,GAAG,oBAAoB,CAAC;QAC5C,IAAI,EAAE,SAAS,CAAC;QAChB,SAAS,EAAE,YAAY,CAAC;KACzB,CAAC,CAOD;IAEY,QAAQ,IAAI,OAAO,CAAC;QAC/B,MAAM,EAAE,cAAc,CAAC;QACvB,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,CA4BD;IAED;;;OAGG;IACU,eAAe,IAAI,OAAO,CAAC;QACtC,MAAM,EAAE,cAAc,CAAC;QACvB,qBAAqB,EAAE,YAAY,CAAC;QACpC,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,SAAS,CAAC;QAChB,QAAQ,EAAE,wBAAwB,CAAC;QACnC,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CA2DD;YAEa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAqBzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAItE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQjD,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,cAAc,EACtB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,SAAS,EACpB,cAAc,CAAC,4BAAgB,EAKjD;IAED;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC;QAC5B,MAAM,EAAE,cAAc,CAAC;QACvB,qBAAqB,EAAE,YAAY,CAAC;QACpC,KAAK,EAAE,aAAa,GAAG,oBAAoB,CAAC;QAC5C,IAAI,EAAE,SAAS,CAAC;QAChB,SAAS,EAAE,YAAY,CAAC;KACzB,CAAC,CAOD;IAEY,QAAQ,IAAI,OAAO,CAAC;QAC/B,MAAM,EAAE,cAAc,CAAC;QACvB,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,CA4BD;IAED;;;OAGG;IACU,eAAe,IAAI,OAAO,CAAC;QACtC,MAAM,EAAE,cAAc,CAAC;QACvB,qBAAqB,EAAE,YAAY,CAAC;QACpC,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,SAAS,CAAC;QAChB,QAAQ,EAAE,wBAAwB,CAAC;QACnC,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CA2DD;YAEa,iBAAiB;YAWjB,YAAY;YAWZ,0BAA0B;YAuC1B,gBAAgB;YAehB,iCAAiC;YAcjC,yCAAyC;YAkBzC,gBAAgB;YA4BhB,UAAU;YAyCV,kBAAkB;YAalB,gBAAgB;YA2BhB,OAAO;YA+FP,wBAAwB;YA6DxB,qBAAqB;YAuDrB,UAAU;YAiDV,sBAAsB;YA2BtB,gBAAgB;YAgChB,UAAU;YAYV,oBAAoB;CAenC"}
|
package/dest/factory.js
CHANGED
|
@@ -132,11 +132,12 @@ export class BotFactory {
|
|
|
132
132
|
}
|
|
133
133
|
async setupTestContract(deployer) {
|
|
134
134
|
const deployOpts = {
|
|
135
|
-
from: deployer
|
|
136
|
-
contractAddressSalt: this.config.tokenSalt,
|
|
137
|
-
universalDeploy: true
|
|
135
|
+
from: deployer
|
|
138
136
|
};
|
|
139
|
-
const deploy = TestContract.deploy(this.wallet
|
|
137
|
+
const deploy = TestContract.deploy(this.wallet, {
|
|
138
|
+
salt: this.config.tokenSalt,
|
|
139
|
+
universalDeploy: true
|
|
140
|
+
});
|
|
140
141
|
const instance = await this.registerOrDeployContract('TestContract', deploy, deployOpts);
|
|
141
142
|
return TestContract.at(instance.address, this.wallet);
|
|
142
143
|
}
|
|
@@ -211,43 +212,39 @@ export class BotFactory {
|
|
|
211
212
|
}
|
|
212
213
|
/**
|
|
213
214
|
* Setup token0 for AMM with refuel-first behaviour when token already exists.
|
|
214
|
-
*/ async setupTokenContractWithOptionalEarlyRefuel(deployer,
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
contractAddressSalt,
|
|
215
|
+
*/ async setupTokenContractWithOptionalEarlyRefuel(deployer, salt, name, ticker, decimals = 18) {
|
|
216
|
+
const deploy = TokenContract.deploy(this.wallet, deployer, name, ticker, decimals, {
|
|
217
|
+
salt,
|
|
218
218
|
universalDeploy: true
|
|
219
|
-
};
|
|
220
|
-
const
|
|
221
|
-
const instance = await deploy.getInstance(deployOpts);
|
|
219
|
+
});
|
|
220
|
+
const instance = await deploy.getInstance();
|
|
222
221
|
const metadata = await this.wallet.getContractMetadata(instance.address);
|
|
223
222
|
if (metadata.isContractPublished) {
|
|
224
223
|
this.log.info(`Token ${name} at ${instance.address.toString()} already deployed, refueling before setup`);
|
|
225
224
|
const token = TokenContract.at(instance.address, this.wallet);
|
|
226
225
|
await this.ensureFeeJuiceBalance(deployer, token);
|
|
227
226
|
}
|
|
228
|
-
return this.setupTokenContract(deployer,
|
|
227
|
+
return this.setupTokenContract(deployer, salt, name, ticker, decimals);
|
|
229
228
|
}
|
|
230
229
|
async getTokenInstance(sender) {
|
|
231
|
-
const
|
|
232
|
-
from: sender,
|
|
233
|
-
contractAddressSalt: this.config.tokenSalt,
|
|
234
|
-
universalDeploy: true
|
|
235
|
-
};
|
|
230
|
+
const salt = this.config.tokenSalt;
|
|
236
231
|
if (this.config.contract === SupportedTokenContracts.TokenContract) {
|
|
237
|
-
const deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18
|
|
238
|
-
|
|
232
|
+
const deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18, {
|
|
233
|
+
salt,
|
|
234
|
+
universalDeploy: true
|
|
235
|
+
});
|
|
236
|
+
const instance = await deploy.getInstance();
|
|
239
237
|
return TokenContract.at(instance.address, this.wallet);
|
|
240
238
|
}
|
|
241
239
|
if (this.config.contract === SupportedTokenContracts.PrivateTokenContract) {
|
|
242
240
|
const tokenSecretKey = Fr.random();
|
|
243
241
|
const tokenPublicKeys = (await deriveKeys(tokenSecretKey)).publicKeys;
|
|
244
|
-
const deploy = PrivateTokenContract.
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
skipClassPublication: true,
|
|
249
|
-
skipInitialization: false
|
|
242
|
+
const deploy = PrivateTokenContract.deploy(this.wallet, MINT_BALANCE, sender, {
|
|
243
|
+
salt,
|
|
244
|
+
universalDeploy: true,
|
|
245
|
+
publicKeys: tokenPublicKeys
|
|
250
246
|
});
|
|
247
|
+
const instance = await deploy.getInstance();
|
|
251
248
|
return PrivateTokenContract.at(instance.address, this.wallet);
|
|
252
249
|
}
|
|
253
250
|
throw new Error(`Unsupported token contract type: ${this.config.contract}`);
|
|
@@ -260,26 +257,32 @@ export class BotFactory {
|
|
|
260
257
|
* @returns The TokenContract or PrivateTokenContract instance.
|
|
261
258
|
*/ async setupToken(sender) {
|
|
262
259
|
let deploy;
|
|
260
|
+
const salt = this.config.tokenSalt;
|
|
263
261
|
const deployOpts = {
|
|
264
|
-
from: sender
|
|
265
|
-
contractAddressSalt: this.config.tokenSalt,
|
|
266
|
-
universalDeploy: true
|
|
262
|
+
from: sender
|
|
267
263
|
};
|
|
268
264
|
let token;
|
|
269
265
|
if (this.config.contract === SupportedTokenContracts.TokenContract) {
|
|
270
|
-
deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18
|
|
271
|
-
|
|
266
|
+
deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18, {
|
|
267
|
+
salt,
|
|
268
|
+
universalDeploy: true
|
|
269
|
+
});
|
|
270
|
+
const instance = await deploy.getInstance();
|
|
272
271
|
token = TokenContract.at(instance.address, this.wallet);
|
|
273
272
|
} else if (this.config.contract === SupportedTokenContracts.PrivateTokenContract) {
|
|
274
273
|
// Generate keys for the contract since PrivateToken uses SinglePrivateMutable which requires keys
|
|
275
274
|
const tokenSecretKey = Fr.random();
|
|
276
275
|
const tokenPublicKeys = (await deriveKeys(tokenSecretKey)).publicKeys;
|
|
277
|
-
deploy = PrivateTokenContract.
|
|
276
|
+
deploy = PrivateTokenContract.deploy(this.wallet, MINT_BALANCE, sender, {
|
|
277
|
+
salt,
|
|
278
|
+
universalDeploy: true,
|
|
279
|
+
publicKeys: tokenPublicKeys
|
|
280
|
+
});
|
|
278
281
|
deployOpts.skipInstancePublication = true;
|
|
279
282
|
deployOpts.skipClassPublication = true;
|
|
280
283
|
deployOpts.skipInitialization = false;
|
|
281
284
|
// Register the contract with the secret key before deployment
|
|
282
|
-
const tokenInstance = await deploy.getInstance(
|
|
285
|
+
const tokenInstance = await deploy.getInstance();
|
|
283
286
|
token = PrivateTokenContract.at(tokenInstance.address, this.wallet);
|
|
284
287
|
await this.wallet.registerContract(tokenInstance, PrivateTokenContract.artifact, tokenSecretKey);
|
|
285
288
|
// The contract constructor initializes private storage vars that need the contract's own nullifier key.
|
|
@@ -296,23 +299,25 @@ export class BotFactory {
|
|
|
296
299
|
* Checks if the token contract is deployed and deploys it if necessary.
|
|
297
300
|
* @param wallet - Wallet to deploy the token contract from.
|
|
298
301
|
* @returns The TokenContract instance.
|
|
299
|
-
*/ async setupTokenContract(deployer,
|
|
302
|
+
*/ async setupTokenContract(deployer, salt, name, ticker, decimals = 18) {
|
|
300
303
|
const deployOpts = {
|
|
301
|
-
from: deployer
|
|
302
|
-
contractAddressSalt,
|
|
303
|
-
universalDeploy: true
|
|
304
|
+
from: deployer
|
|
304
305
|
};
|
|
305
|
-
const deploy = TokenContract.deploy(this.wallet, deployer, name, ticker, decimals
|
|
306
|
+
const deploy = TokenContract.deploy(this.wallet, deployer, name, ticker, decimals, {
|
|
307
|
+
salt,
|
|
308
|
+
universalDeploy: true
|
|
309
|
+
});
|
|
306
310
|
const instance = await this.registerOrDeployContract('Token - ' + name, deploy, deployOpts);
|
|
307
311
|
return TokenContract.at(instance.address, this.wallet);
|
|
308
312
|
}
|
|
309
|
-
async setupAmmContract(deployer,
|
|
313
|
+
async setupAmmContract(deployer, salt, token0, token1, lpToken) {
|
|
310
314
|
const deployOpts = {
|
|
311
|
-
from: deployer
|
|
312
|
-
contractAddressSalt,
|
|
313
|
-
universalDeploy: true
|
|
315
|
+
from: deployer
|
|
314
316
|
};
|
|
315
|
-
const deploy = AMMContract.deploy(this.wallet, token0.address, token1.address, lpToken.address
|
|
317
|
+
const deploy = AMMContract.deploy(this.wallet, token0.address, token1.address, lpToken.address, {
|
|
318
|
+
salt,
|
|
319
|
+
universalDeploy: true
|
|
320
|
+
});
|
|
316
321
|
const instance = await this.registerOrDeployContract('AMM', deploy, deployOpts);
|
|
317
322
|
const amm = AMMContract.at(instance.address, this.wallet);
|
|
318
323
|
this.log.info(`AMM deployed at ${amm.address}`);
|
|
@@ -384,7 +389,7 @@ export class BotFactory {
|
|
|
384
389
|
this.log.info(`Updated private balances of ${defaultAccountAddress} after minting and funding AMM: token0=${newT0Bal}, token1=${newT1Bal}, lp=${newLPBal}`);
|
|
385
390
|
}
|
|
386
391
|
async registerOrDeployContract(name, deploy, deployOpts) {
|
|
387
|
-
const instance = await deploy.getInstance(
|
|
392
|
+
const instance = await deploy.getInstance();
|
|
388
393
|
const address = instance.address;
|
|
389
394
|
const metadata = await this.wallet.getContractMetadata(address);
|
|
390
395
|
if (metadata.isContractPublished) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/bot",
|
|
3
|
-
"version": "5.0.0-nightly.
|
|
3
|
+
"version": "5.0.0-nightly.20260512",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -54,20 +54,20 @@
|
|
|
54
54
|
]
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@aztec/accounts": "5.0.0-nightly.
|
|
58
|
-
"@aztec/aztec.js": "5.0.0-nightly.
|
|
59
|
-
"@aztec/entrypoints": "5.0.0-nightly.
|
|
60
|
-
"@aztec/ethereum": "5.0.0-nightly.
|
|
61
|
-
"@aztec/foundation": "5.0.0-nightly.
|
|
62
|
-
"@aztec/kv-store": "5.0.0-nightly.
|
|
63
|
-
"@aztec/l1-artifacts": "5.0.0-nightly.
|
|
64
|
-
"@aztec/noir-contracts.js": "5.0.0-nightly.
|
|
65
|
-
"@aztec/noir-protocol-circuits-types": "5.0.0-nightly.
|
|
66
|
-
"@aztec/noir-test-contracts.js": "5.0.0-nightly.
|
|
67
|
-
"@aztec/protocol-contracts": "5.0.0-nightly.
|
|
68
|
-
"@aztec/stdlib": "5.0.0-nightly.
|
|
69
|
-
"@aztec/telemetry-client": "5.0.0-nightly.
|
|
70
|
-
"@aztec/wallets": "5.0.0-nightly.
|
|
57
|
+
"@aztec/accounts": "5.0.0-nightly.20260512",
|
|
58
|
+
"@aztec/aztec.js": "5.0.0-nightly.20260512",
|
|
59
|
+
"@aztec/entrypoints": "5.0.0-nightly.20260512",
|
|
60
|
+
"@aztec/ethereum": "5.0.0-nightly.20260512",
|
|
61
|
+
"@aztec/foundation": "5.0.0-nightly.20260512",
|
|
62
|
+
"@aztec/kv-store": "5.0.0-nightly.20260512",
|
|
63
|
+
"@aztec/l1-artifacts": "5.0.0-nightly.20260512",
|
|
64
|
+
"@aztec/noir-contracts.js": "5.0.0-nightly.20260512",
|
|
65
|
+
"@aztec/noir-protocol-circuits-types": "5.0.0-nightly.20260512",
|
|
66
|
+
"@aztec/noir-test-contracts.js": "5.0.0-nightly.20260512",
|
|
67
|
+
"@aztec/protocol-contracts": "5.0.0-nightly.20260512",
|
|
68
|
+
"@aztec/stdlib": "5.0.0-nightly.20260512",
|
|
69
|
+
"@aztec/telemetry-client": "5.0.0-nightly.20260512",
|
|
70
|
+
"@aztec/wallets": "5.0.0-nightly.20260512",
|
|
71
71
|
"source-map-support": "^0.5.21",
|
|
72
72
|
"tslib": "^2.4.0",
|
|
73
73
|
"viem": "npm:@aztec/viem@2.38.2",
|
package/src/factory.ts
CHANGED
|
@@ -189,12 +189,8 @@ export class BotFactory {
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
private async setupTestContract(deployer: AztecAddress): Promise<TestContract> {
|
|
192
|
-
const deployOpts: DeployOptions = {
|
|
193
|
-
|
|
194
|
-
contractAddressSalt: this.config.tokenSalt,
|
|
195
|
-
universalDeploy: true,
|
|
196
|
-
};
|
|
197
|
-
const deploy = TestContract.deploy(this.wallet);
|
|
192
|
+
const deployOpts: DeployOptions = { from: deployer };
|
|
193
|
+
const deploy = TestContract.deploy(this.wallet, { salt: this.config.tokenSalt, universalDeploy: true });
|
|
198
194
|
const instance = await this.registerOrDeployContract('TestContract', deploy, deployOpts);
|
|
199
195
|
return TestContract.at(instance.address, this.wallet);
|
|
200
196
|
}
|
|
@@ -284,44 +280,38 @@ export class BotFactory {
|
|
|
284
280
|
*/
|
|
285
281
|
private async setupTokenContractWithOptionalEarlyRefuel(
|
|
286
282
|
deployer: AztecAddress,
|
|
287
|
-
|
|
283
|
+
salt: Fr,
|
|
288
284
|
name: string,
|
|
289
285
|
ticker: string,
|
|
290
286
|
decimals = 18,
|
|
291
287
|
): Promise<TokenContract> {
|
|
292
|
-
const
|
|
293
|
-
const
|
|
294
|
-
const instance = await deploy.getInstance(deployOpts);
|
|
288
|
+
const deploy = TokenContract.deploy(this.wallet, deployer, name, ticker, decimals, { salt, universalDeploy: true });
|
|
289
|
+
const instance = await deploy.getInstance();
|
|
295
290
|
const metadata = await this.wallet.getContractMetadata(instance.address);
|
|
296
291
|
if (metadata.isContractPublished) {
|
|
297
292
|
this.log.info(`Token ${name} at ${instance.address.toString()} already deployed, refueling before setup`);
|
|
298
293
|
const token = TokenContract.at(instance.address, this.wallet);
|
|
299
294
|
await this.ensureFeeJuiceBalance(deployer, token);
|
|
300
295
|
}
|
|
301
|
-
return this.setupTokenContract(deployer,
|
|
296
|
+
return this.setupTokenContract(deployer, salt, name, ticker, decimals);
|
|
302
297
|
}
|
|
303
298
|
|
|
304
299
|
private async getTokenInstance(sender: AztecAddress): Promise<TokenContract | PrivateTokenContract> {
|
|
305
|
-
const
|
|
306
|
-
from: sender,
|
|
307
|
-
contractAddressSalt: this.config.tokenSalt,
|
|
308
|
-
universalDeploy: true,
|
|
309
|
-
};
|
|
300
|
+
const salt = this.config.tokenSalt;
|
|
310
301
|
if (this.config.contract === SupportedTokenContracts.TokenContract) {
|
|
311
|
-
const deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18);
|
|
312
|
-
const instance = await deploy.getInstance(
|
|
302
|
+
const deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18, { salt, universalDeploy: true });
|
|
303
|
+
const instance = await deploy.getInstance();
|
|
313
304
|
return TokenContract.at(instance.address, this.wallet);
|
|
314
305
|
}
|
|
315
306
|
if (this.config.contract === SupportedTokenContracts.PrivateTokenContract) {
|
|
316
307
|
const tokenSecretKey = Fr.random();
|
|
317
308
|
const tokenPublicKeys = (await deriveKeys(tokenSecretKey)).publicKeys;
|
|
318
|
-
const deploy = PrivateTokenContract.
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
skipClassPublication: true,
|
|
323
|
-
skipInitialization: false,
|
|
309
|
+
const deploy = PrivateTokenContract.deploy(this.wallet, MINT_BALANCE, sender, {
|
|
310
|
+
salt,
|
|
311
|
+
universalDeploy: true,
|
|
312
|
+
publicKeys: tokenPublicKeys,
|
|
324
313
|
});
|
|
314
|
+
const instance = await deploy.getInstance();
|
|
325
315
|
return PrivateTokenContract.at(instance.address, this.wallet);
|
|
326
316
|
}
|
|
327
317
|
throw new Error(`Unsupported token contract type: ${this.config.contract}`);
|
|
@@ -336,27 +326,28 @@ export class BotFactory {
|
|
|
336
326
|
*/
|
|
337
327
|
private async setupToken(sender: AztecAddress): Promise<TokenContract | PrivateTokenContract> {
|
|
338
328
|
let deploy: DeployMethod<TokenContract | PrivateTokenContract>;
|
|
339
|
-
const
|
|
340
|
-
|
|
341
|
-
contractAddressSalt: this.config.tokenSalt,
|
|
342
|
-
universalDeploy: true,
|
|
343
|
-
};
|
|
329
|
+
const salt = this.config.tokenSalt;
|
|
330
|
+
const deployOpts: DeployOptions = { from: sender };
|
|
344
331
|
let token: TokenContract | PrivateTokenContract;
|
|
345
332
|
if (this.config.contract === SupportedTokenContracts.TokenContract) {
|
|
346
|
-
deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18);
|
|
347
|
-
const instance = await deploy.getInstance(
|
|
333
|
+
deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18, { salt, universalDeploy: true });
|
|
334
|
+
const instance = await deploy.getInstance();
|
|
348
335
|
token = TokenContract.at(instance.address, this.wallet);
|
|
349
336
|
} else if (this.config.contract === SupportedTokenContracts.PrivateTokenContract) {
|
|
350
337
|
// Generate keys for the contract since PrivateToken uses SinglePrivateMutable which requires keys
|
|
351
338
|
const tokenSecretKey = Fr.random();
|
|
352
339
|
const tokenPublicKeys = (await deriveKeys(tokenSecretKey)).publicKeys;
|
|
353
|
-
deploy = PrivateTokenContract.
|
|
340
|
+
deploy = PrivateTokenContract.deploy(this.wallet, MINT_BALANCE, sender, {
|
|
341
|
+
salt,
|
|
342
|
+
universalDeploy: true,
|
|
343
|
+
publicKeys: tokenPublicKeys,
|
|
344
|
+
});
|
|
354
345
|
deployOpts.skipInstancePublication = true;
|
|
355
346
|
deployOpts.skipClassPublication = true;
|
|
356
347
|
deployOpts.skipInitialization = false;
|
|
357
348
|
|
|
358
349
|
// Register the contract with the secret key before deployment
|
|
359
|
-
const tokenInstance = await deploy.getInstance(
|
|
350
|
+
const tokenInstance = await deploy.getInstance();
|
|
360
351
|
token = PrivateTokenContract.at(tokenInstance.address, this.wallet);
|
|
361
352
|
await this.wallet.registerContract(tokenInstance, PrivateTokenContract.artifact, tokenSecretKey);
|
|
362
353
|
// The contract constructor initializes private storage vars that need the contract's own nullifier key.
|
|
@@ -376,26 +367,29 @@ export class BotFactory {
|
|
|
376
367
|
*/
|
|
377
368
|
private async setupTokenContract(
|
|
378
369
|
deployer: AztecAddress,
|
|
379
|
-
|
|
370
|
+
salt: Fr,
|
|
380
371
|
name: string,
|
|
381
372
|
ticker: string,
|
|
382
373
|
decimals = 18,
|
|
383
374
|
): Promise<TokenContract> {
|
|
384
|
-
const deployOpts: DeployOptions = { from: deployer
|
|
385
|
-
const deploy = TokenContract.deploy(this.wallet, deployer, name, ticker, decimals);
|
|
375
|
+
const deployOpts: DeployOptions = { from: deployer };
|
|
376
|
+
const deploy = TokenContract.deploy(this.wallet, deployer, name, ticker, decimals, { salt, universalDeploy: true });
|
|
386
377
|
const instance = await this.registerOrDeployContract('Token - ' + name, deploy, deployOpts);
|
|
387
378
|
return TokenContract.at(instance.address, this.wallet);
|
|
388
379
|
}
|
|
389
380
|
|
|
390
381
|
private async setupAmmContract(
|
|
391
382
|
deployer: AztecAddress,
|
|
392
|
-
|
|
383
|
+
salt: Fr,
|
|
393
384
|
token0: TokenContract,
|
|
394
385
|
token1: TokenContract,
|
|
395
386
|
lpToken: TokenContract,
|
|
396
387
|
): Promise<AMMContract> {
|
|
397
|
-
const deployOpts: DeployOptions = { from: deployer
|
|
398
|
-
const deploy = AMMContract.deploy(this.wallet, token0.address, token1.address, lpToken.address
|
|
388
|
+
const deployOpts: DeployOptions = { from: deployer };
|
|
389
|
+
const deploy = AMMContract.deploy(this.wallet, token0.address, token1.address, lpToken.address, {
|
|
390
|
+
salt,
|
|
391
|
+
universalDeploy: true,
|
|
392
|
+
});
|
|
399
393
|
const instance = await this.registerOrDeployContract('AMM', deploy, deployOpts);
|
|
400
394
|
const amm = AMMContract.at(instance.address, this.wallet);
|
|
401
395
|
|
|
@@ -511,7 +505,7 @@ export class BotFactory {
|
|
|
511
505
|
deploy: DeployMethod<T>,
|
|
512
506
|
deployOpts: DeployOptions,
|
|
513
507
|
): Promise<ContractInstanceWithAddress> {
|
|
514
|
-
const instance = await deploy.getInstance(
|
|
508
|
+
const instance = await deploy.getInstance();
|
|
515
509
|
const address = instance.address;
|
|
516
510
|
const metadata = await this.wallet.getContractMetadata(address);
|
|
517
511
|
if (metadata.isContractPublished) {
|