@aztec/bot 3.0.3 → 4.0.0-devnet.1-patch.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/factory.js CHANGED
@@ -1,11 +1,12 @@
1
- import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
2
1
  import { getInitialTestAccountsData } from '@aztec/accounts/testing';
3
2
  import { AztecAddress } from '@aztec/aztec.js/addresses';
4
- import { BatchCall } from '@aztec/aztec.js/contracts';
3
+ import { BatchCall, NO_WAIT } from '@aztec/aztec.js/contracts';
5
4
  import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
6
5
  import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
6
+ import { deriveKeys } from '@aztec/aztec.js/keys';
7
7
  import { createLogger } from '@aztec/aztec.js/log';
8
8
  import { waitForL1ToL2MessageReady } from '@aztec/aztec.js/messaging';
9
+ import { waitForTx } from '@aztec/aztec.js/node';
9
10
  import { createEthereumChain } from '@aztec/ethereum/chain';
10
11
  import { createExtendedL1Client } from '@aztec/ethereum/client';
11
12
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -39,7 +40,7 @@ export class BotFactory {
39
40
  * deploying the token contract, and minting tokens if necessary.
40
41
  */ async setup() {
41
42
  const defaultAccountAddress = await this.setupAccount();
42
- const recipient = (await this.wallet.createAccount()).address;
43
+ const recipient = (await this.wallet.createSchnorrAccount(Fr.random(), Fr.random())).address;
43
44
  const token = await this.setupToken(defaultAccountAddress);
44
45
  await this.mintTokens(token, defaultAccountAddress);
45
46
  return {
@@ -83,14 +84,9 @@ export class BotFactory {
83
84
  async setupAccountWithPrivateKey(secret) {
84
85
  const salt = this.config.senderSalt ?? Fr.ONE;
85
86
  const signingKey = deriveSigningKey(secret);
86
- const accountData = {
87
- secret,
88
- salt,
89
- contract: new SchnorrAccountContract(signingKey)
90
- };
91
- const accountManager = await this.wallet.createAccount(accountData);
92
- const isInit = (await this.wallet.getContractMetadata(accountManager.address)).isContractInitialized;
93
- if (isInit) {
87
+ const accountManager = await this.wallet.createSchnorrAccount(secret, salt, signingKey);
88
+ const metadata = await this.wallet.getContractMetadata(accountManager.address);
89
+ if (metadata.isContractInitialized) {
94
90
  this.log.info(`Account at ${accountManager.address.toString()} already initialized`);
95
91
  const timer = new Timer();
96
92
  const address = accountManager.address;
@@ -103,22 +99,24 @@ export class BotFactory {
103
99
  const claim = await this.getOrCreateBridgeClaim(address);
104
100
  const paymentMethod = new FeeJuicePaymentMethodWithClaim(accountManager.address, claim);
105
101
  const deployMethod = await accountManager.getDeployMethod();
106
- const maxFeesPerGas = (await this.aztecNode.getCurrentBaseFees()).mul(1 + this.config.baseFeePadding);
102
+ const maxFeesPerGas = (await this.aztecNode.getCurrentMinFees()).mul(1 + this.config.minFeePadding);
107
103
  const gasSettings = GasSettings.default({
108
104
  maxFeesPerGas
109
105
  });
110
- const sentTx = deployMethod.send({
111
- from: AztecAddress.ZERO,
112
- fee: {
113
- gasSettings,
114
- paymentMethod
115
- }
116
- });
117
- const txHash = await sentTx.getTxHash();
118
- this.log.info(`Sent tx for account deployment with hash ${txHash.toString()}`);
119
- await this.withNoMinTxsPerBlock(()=>sentTx.wait({
106
+ await this.withNoMinTxsPerBlock(async ()=>{
107
+ const txHash = await deployMethod.send({
108
+ from: AztecAddress.ZERO,
109
+ fee: {
110
+ gasSettings,
111
+ paymentMethod
112
+ },
113
+ wait: NO_WAIT
114
+ });
115
+ this.log.info(`Sent tx for account deployment with hash ${txHash.toString()}`);
116
+ return waitForTx(this.aztecNode, txHash, {
120
117
  timeout: this.config.txMinedWaitSeconds
121
- }));
118
+ });
119
+ });
122
120
  this.log.info(`Account deployed at ${address}`);
123
121
  // Clean up the consumed bridge claim
124
122
  await this.store.deleteBridgeClaim(address);
@@ -127,12 +125,7 @@ export class BotFactory {
127
125
  }
128
126
  async setupTestAccount() {
129
127
  const [initialAccountData] = await getInitialTestAccountsData();
130
- const accountData = {
131
- secret: initialAccountData.secret,
132
- salt: initialAccountData.salt,
133
- contract: new SchnorrAccountContract(initialAccountData.signingKey)
134
- };
135
- const accountManager = await this.wallet.createAccount(accountData);
128
+ const accountManager = await this.wallet.createSchnorrAccount(initialAccountData.secret, initialAccountData.salt, initialAccountData.signingKey);
136
129
  return accountManager.address;
137
130
  }
138
131
  /**
@@ -141,47 +134,66 @@ export class BotFactory {
141
134
  * @returns The TokenContract instance.
142
135
  */ async setupToken(sender) {
143
136
  let deploy;
137
+ let tokenInstance;
144
138
  const deployOpts = {
145
139
  from: sender,
146
140
  contractAddressSalt: this.config.tokenSalt,
147
141
  universalDeploy: true
148
142
  };
143
+ let token;
149
144
  if (this.config.contract === SupportedTokenContracts.TokenContract) {
150
145
  deploy = TokenContract.deploy(this.wallet, sender, 'BotToken', 'BOT', 18);
146
+ tokenInstance = await deploy.getInstance(deployOpts);
147
+ token = TokenContract.at(tokenInstance.address, this.wallet);
151
148
  } else if (this.config.contract === SupportedTokenContracts.PrivateTokenContract) {
152
- deploy = PrivateTokenContract.deploy(this.wallet, MINT_BALANCE, sender);
149
+ // Generate keys for the contract since PrivateToken uses SinglePrivateMutable which requires keys
150
+ const tokenSecretKey = Fr.random();
151
+ const tokenPublicKeys = (await deriveKeys(tokenSecretKey)).publicKeys;
152
+ deploy = PrivateTokenContract.deployWithPublicKeys(tokenPublicKeys, this.wallet, MINT_BALANCE, sender);
153
153
  deployOpts.skipInstancePublication = true;
154
154
  deployOpts.skipClassPublication = true;
155
155
  deployOpts.skipInitialization = false;
156
+ // Register the contract with the secret key before deployment
157
+ tokenInstance = await deploy.getInstance(deployOpts);
158
+ token = PrivateTokenContract.at(tokenInstance.address, this.wallet);
159
+ await this.wallet.registerContract(tokenInstance, PrivateTokenContract.artifact, tokenSecretKey);
156
160
  } else {
157
161
  throw new Error(`Unsupported token contract type: ${this.config.contract}`);
158
162
  }
159
- const address = (await deploy.getInstance(deployOpts)).address;
160
- if ((await this.wallet.getContractMetadata(address)).isContractPublished) {
163
+ const address = tokenInstance?.address ?? (await deploy.getInstance(deployOpts)).address;
164
+ const metadata = await this.wallet.getContractMetadata(address);
165
+ if (metadata.isContractPublished) {
161
166
  this.log.info(`Token at ${address.toString()} already deployed`);
162
- return deploy.register();
167
+ await deploy.register();
163
168
  } else {
164
169
  this.log.info(`Deploying token contract at ${address.toString()}`);
165
- const sentTx = deploy.send(deployOpts);
166
- const txHash = await sentTx.getTxHash();
170
+ const txHash = await deploy.send({
171
+ ...deployOpts,
172
+ wait: NO_WAIT
173
+ });
167
174
  this.log.info(`Sent tx for token setup with hash ${txHash.toString()}`);
168
- return this.withNoMinTxsPerBlock(()=>sentTx.deployed({
175
+ await this.withNoMinTxsPerBlock(async ()=>{
176
+ await waitForTx(this.aztecNode, txHash, {
169
177
  timeout: this.config.txMinedWaitSeconds
170
- }));
178
+ });
179
+ return token;
180
+ });
171
181
  }
182
+ return token;
172
183
  }
173
184
  /**
174
185
  * Checks if the token contract is deployed and deploys it if necessary.
175
186
  * @param wallet - Wallet to deploy the token contract from.
176
187
  * @returns The TokenContract instance.
177
- */ setupTokenContract(deployer, contractAddressSalt, name, ticker, decimals = 18) {
188
+ */ async setupTokenContract(deployer, contractAddressSalt, name, ticker, decimals = 18) {
178
189
  const deployOpts = {
179
190
  from: deployer,
180
191
  contractAddressSalt,
181
192
  universalDeploy: true
182
193
  };
183
194
  const deploy = TokenContract.deploy(this.wallet, deployer, name, ticker, decimals);
184
- return this.registerOrDeployContract('Token - ' + name, deploy, deployOpts);
195
+ const instance = await this.registerOrDeployContract('Token - ' + name, deploy, deployOpts);
196
+ return TokenContract.at(instance.address, this.wallet);
185
197
  }
186
198
  async setupAmmContract(deployer, contractAddressSalt, token0, token1, lpToken) {
187
199
  const deployOpts = {
@@ -190,15 +202,16 @@ export class BotFactory {
190
202
  universalDeploy: true
191
203
  };
192
204
  const deploy = AMMContract.deploy(this.wallet, token0.address, token1.address, lpToken.address);
193
- const amm = await this.registerOrDeployContract('AMM', deploy, deployOpts);
205
+ const instance = await this.registerOrDeployContract('AMM', deploy, deployOpts);
206
+ const amm = AMMContract.at(instance.address, this.wallet);
194
207
  this.log.info(`AMM deployed at ${amm.address}`);
195
- const minterTx = lpToken.methods.set_minter(amm.address, true).send({
196
- from: deployer
197
- });
198
- this.log.info(`Set LP token minter to AMM txHash=${(await minterTx.getTxHash()).toString()}`);
199
- await minterTx.wait({
200
- timeout: this.config.txMinedWaitSeconds
208
+ const minterReceipt = await lpToken.methods.set_minter(amm.address, true).send({
209
+ from: deployer,
210
+ wait: {
211
+ timeout: this.config.txMinedWaitSeconds
212
+ }
201
213
  });
214
+ this.log.info(`Set LP token minter to AMM txHash=${minterReceipt.txHash.toString()}`);
202
215
  this.log.info(`Liquidity token initialized`);
203
216
  return amm;
204
217
  }
@@ -231,45 +244,52 @@ export class BotFactory {
231
244
  caller: amm.address,
232
245
  call: await token1.methods.transfer_to_public_and_prepare_private_balance_increase(liquidityProvider, amm.address, amount1Max, authwitNonce).getFunctionCall()
233
246
  });
234
- const mintTx = new BatchCall(this.wallet, [
247
+ const mintReceipt = await new BatchCall(this.wallet, [
235
248
  token0.methods.mint_to_private(liquidityProvider, MINT_BALANCE),
236
249
  token1.methods.mint_to_private(liquidityProvider, MINT_BALANCE)
237
250
  ]).send({
238
- from: liquidityProvider
239
- });
240
- this.log.info(`Sent mint tx: ${(await mintTx.getTxHash()).toString()}`);
241
- await mintTx.wait({
242
- timeout: this.config.txMinedWaitSeconds
251
+ from: liquidityProvider,
252
+ wait: {
253
+ timeout: this.config.txMinedWaitSeconds
254
+ }
243
255
  });
244
- const addLiquidityTx = amm.methods.add_liquidity(amount0Max, amount1Max, amount0Min, amount1Min, authwitNonce).send({
256
+ this.log.info(`Sent mint tx: ${mintReceipt.txHash.toString()}`);
257
+ const addLiquidityReceipt = await amm.methods.add_liquidity(amount0Max, amount1Max, amount0Min, amount1Min, authwitNonce).send({
245
258
  from: liquidityProvider,
246
259
  authWitnesses: [
247
260
  token0Authwit,
248
261
  token1Authwit
249
- ]
250
- });
251
- this.log.info(`Sent tx to add liquidity to the AMM: ${(await addLiquidityTx.getTxHash()).toString()}`);
252
- await addLiquidityTx.wait({
253
- timeout: this.config.txMinedWaitSeconds
262
+ ],
263
+ wait: {
264
+ timeout: this.config.txMinedWaitSeconds
265
+ }
254
266
  });
267
+ this.log.info(`Sent tx to add liquidity to the AMM: ${addLiquidityReceipt.txHash.toString()}`);
255
268
  this.log.info(`Liquidity added`);
256
269
  const [newT0Bal, newT1Bal, newLPBal] = await getPrivateBalances();
257
270
  this.log.info(`Updated private balances of ${defaultAccountAddress} after minting and funding AMM: token0=${newT0Bal}, token1=${newT1Bal}, lp=${newLPBal}`);
258
271
  }
259
272
  async registerOrDeployContract(name, deploy, deployOpts) {
260
- const address = (await deploy.getInstance(deployOpts)).address;
261
- if ((await this.wallet.getContractMetadata(address)).isContractPublished) {
273
+ const instance = await deploy.getInstance(deployOpts);
274
+ const address = instance.address;
275
+ const metadata = await this.wallet.getContractMetadata(address);
276
+ if (metadata.isContractPublished) {
262
277
  this.log.info(`Contract ${name} at ${address.toString()} already deployed`);
263
- return deploy.register();
278
+ await deploy.register();
264
279
  } else {
265
280
  this.log.info(`Deploying contract ${name} at ${address.toString()}`);
266
- const sentTx = deploy.send(deployOpts);
267
- const txHash = await sentTx.getTxHash();
268
- this.log.info(`Sent contract ${name} setup tx with hash ${txHash.toString()}`);
269
- return this.withNoMinTxsPerBlock(()=>sentTx.deployed({
281
+ await this.withNoMinTxsPerBlock(async ()=>{
282
+ const txHash = await deploy.send({
283
+ ...deployOpts,
284
+ wait: NO_WAIT
285
+ });
286
+ this.log.info(`Sent contract ${name} setup tx with hash ${txHash.toString()}`);
287
+ return waitForTx(this.aztecNode, txHash, {
270
288
  timeout: this.config.txMinedWaitSeconds
271
- }));
289
+ });
290
+ });
272
291
  }
292
+ return instance;
273
293
  }
274
294
  /**
275
295
  * Mints private and public tokens for the sender if their balance is below the minimum.
@@ -296,14 +316,16 @@ export class BotFactory {
296
316
  this.log.info(`Skipping minting as ${minter.toString()} has enough tokens`);
297
317
  return;
298
318
  }
299
- const sentTx = new BatchCall(token.wallet, calls).send({
300
- from: minter
301
- });
302
- const txHash = await sentTx.getTxHash();
303
- this.log.info(`Sent token mint tx with hash ${txHash.toString()}`);
304
- await this.withNoMinTxsPerBlock(()=>sentTx.wait({
319
+ await this.withNoMinTxsPerBlock(async ()=>{
320
+ const txHash = await new BatchCall(token.wallet, calls).send({
321
+ from: minter,
322
+ wait: NO_WAIT
323
+ });
324
+ this.log.info(`Sent token mint tx with hash ${txHash.toString()}`);
325
+ return waitForTx(this.aztecNode, txHash, {
305
326
  timeout: this.config.txMinedWaitSeconds
306
- }));
327
+ });
328
+ });
307
329
  }
308
330
  /**
309
331
  * Gets or creates a bridge claim for the recipient.
package/dest/runner.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { AztecNode } from '@aztec/aztec.js/node';
2
2
  import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
3
3
  import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
4
- import type { TestWallet } from '@aztec/test-wallet/server';
4
+ import type { EmbeddedWallet } from '@aztec/wallets/embedded';
5
5
  import type { BotConfig } from './config.js';
6
6
  import type { BotInfo, BotRunnerApi } from './interface.js';
7
7
  import { BotStore } from './store/index.js';
@@ -19,7 +19,7 @@ export declare class BotRunner implements BotRunnerApi, Traceable {
19
19
  private consecutiveErrors;
20
20
  private healthy;
21
21
  readonly tracer: Tracer;
22
- constructor(config: BotConfig, wallet: TestWallet, aztecNode: AztecNode, telemetry: TelemetryClient, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore);
22
+ constructor(config: BotConfig, wallet: EmbeddedWallet, aztecNode: AztecNode, telemetry: TelemetryClient, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore);
23
23
  /** Initializes the bot if needed. Blocks until the bot setup is finished. */
24
24
  setup(): Promise<void>;
25
25
  private doSetup;
@@ -50,4 +50,4 @@ export declare class BotRunner implements BotRunnerApi, Traceable {
50
50
  /** Returns the bot sender address. */
51
51
  getInfo(): Promise<BotInfo>;
52
52
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcnVubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3RELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLFNBQVMsRUFBRSxLQUFLLE1BQU0sRUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSzVELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLHFCQUFhLFNBQVUsWUFBVyxZQUFZLEVBQUUsU0FBUzs7SUFVckQsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWM7SUFDL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBZHhCLE9BQU8sQ0FBQyxHQUFHLENBQXVCO0lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBbUI7SUFDL0IsT0FBTyxDQUFDLGNBQWMsQ0FBaUI7SUFDdkMsT0FBTyxDQUFDLGlCQUFpQixDQUFLO0lBQzlCLE9BQU8sQ0FBQyxPQUFPLENBQVE7SUFFdkIsU0FBZ0IsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUUvQixZQUNVLE1BQU0sRUFBRSxTQUFTLEVBQ1IsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsU0FBUyxFQUFFLGVBQWUsRUFDMUIsY0FBYyxFQUFFLGNBQWMsR0FBRyxTQUFTLEVBQzFDLEtBQUssRUFBRSxRQUFRLEVBS2pDO0lBRUQsNkVBQTZFO0lBQ2hFLEtBQUssa0JBSWpCO1lBR2EsT0FBTztJQU1yQjs7O09BR0c7SUFDVSxLQUFLLGtCQU1qQjtJQUVEOztPQUVHO0lBQ1UsSUFBSSxrQkFPaEI7SUFFTSxTQUFTLFlBRWY7SUFFRCwwQ0FBMEM7SUFDbkMsU0FBUyxZQUVmO0lBRUQ7OztPQUdHO0lBQ1UsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLGlCQWFwQztJQUVEOzs7T0FHRztJQUNVLEdBQUcsa0JBc0JmO0lBRUQscURBQXFEO0lBQzlDLFNBQVMsdUJBR2Y7SUFFRCxzQ0FBc0M7SUFDekIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FNdkM7Q0F1Q0YifQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcnVubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3RELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLFNBQVMsRUFBRSxLQUFLLE1BQU0sRUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzlELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLHFCQUFhLFNBQVUsWUFBVyxZQUFZLEVBQUUsU0FBUzs7SUFVckQsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWM7SUFDL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBZHhCLE9BQU8sQ0FBQyxHQUFHLENBQXVCO0lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBbUI7SUFDL0IsT0FBTyxDQUFDLGNBQWMsQ0FBaUI7SUFDdkMsT0FBTyxDQUFDLGlCQUFpQixDQUFLO0lBQzlCLE9BQU8sQ0FBQyxPQUFPLENBQVE7SUFFdkIsU0FBZ0IsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUUvQixZQUNVLE1BQU0sRUFBRSxTQUFTLEVBQ1IsTUFBTSxFQUFFLGNBQWMsRUFDdEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsU0FBUyxFQUFFLGVBQWUsRUFDMUIsY0FBYyxFQUFFLGNBQWMsR0FBRyxTQUFTLEVBQzFDLEtBQUssRUFBRSxRQUFRLEVBS2pDO0lBRUQsNkVBQTZFO0lBQ2hFLEtBQUssa0JBSWpCO1lBR2EsT0FBTztJQU1yQjs7O09BR0c7SUFDVSxLQUFLLGtCQU1qQjtJQUVEOztPQUVHO0lBQ1UsSUFBSSxrQkFPaEI7SUFFTSxTQUFTLFlBRWY7SUFFRCwwQ0FBMEM7SUFDbkMsU0FBUyxZQUVmO0lBRUQ7OztPQUdHO0lBQ1UsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLGlCQWFwQztJQUVEOzs7T0FHRztJQUNVLEdBQUcsa0JBc0JmO0lBRUQscURBQXFEO0lBQzlDLFNBQVMsdUJBR2Y7SUFFRCxzQ0FBc0M7SUFDekIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FNdkM7Q0F1Q0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AACvG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAK5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,qBAAa,SAAU,YAAW,YAAY,EAAE,SAAS;;IAUrD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAdxB,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,GAAG,CAAC,CAAmB;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,OAAO,CAAQ;IAEvB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,YACU,MAAM,EAAE,SAAS,EACR,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,QAAQ,EAKjC;IAED,6EAA6E;IAChE,KAAK,kBAIjB;YAGa,OAAO;IAMrB;;;OAGG;IACU,KAAK,kBAMjB;IAED;;OAEG;IACU,IAAI,kBAOhB;IAEM,SAAS,YAEf;IAED,0CAA0C;IACnC,SAAS,YAEf;IAED;;;OAGG;IACU,MAAM,CAAC,MAAM,EAAE,SAAS,iBAapC;IAED;;;OAGG;IACU,GAAG,kBAsBf;IAED,qDAAqD;IAC9C,SAAS,uBAGf;IAED,sCAAsC;IACzB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAMvC;CAuCF"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AACvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAK9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,qBAAa,SAAU,YAAW,YAAY,EAAE,SAAS;;IAUrD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAdxB,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,GAAG,CAAC,CAAmB;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,OAAO,CAAQ;IAEvB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,YACU,MAAM,EAAE,SAAS,EACR,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,QAAQ,EAKjC;IAED,6EAA6E;IAChE,KAAK,kBAIjB;YAGa,OAAO;IAMrB;;;OAGG;IACU,KAAK,kBAMjB;IAED;;OAEG;IACU,IAAI,kBAOhB;IAEM,SAAS,YAEf;IAED,0CAA0C;IACnC,SAAS,YAEf;IAED;;;OAGG;IACU,MAAM,CAAC,MAAM,EAAE,SAAS,iBAapC;IAED;;;OAGG;IACU,GAAG,kBAsBf;IAED,qDAAqD;IAC9C,SAAS,uBAGf;IAED,sCAAsC;IACzB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAMvC;CAuCF"}