@aztec/cli-wallet 0.0.1-commit.b655e406 → 0.0.1-commit.c0b82b2
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/README.md +2 -2
- package/dest/bin/index.d.ts +2 -1
- package/dest/bin/index.js +20 -10
- package/dest/cmds/authorize_action.d.ts +2 -2
- package/dest/cmds/authorize_action.d.ts.map +1 -1
- package/dest/cmds/authorize_action.js +5 -3
- package/dest/cmds/bridge_fee_juice.d.ts +2 -2
- package/dest/cmds/bridge_fee_juice.d.ts.map +1 -1
- package/dest/cmds/bridge_fee_juice.js +3 -2
- package/dest/cmds/check_tx.d.ts +1 -1
- package/dest/cmds/check_tx.js +10 -7
- package/dest/cmds/create_account.d.ts +4 -3
- package/dest/cmds/create_account.d.ts.map +1 -1
- package/dest/cmds/create_account.js +25 -19
- package/dest/cmds/create_authwit.d.ts +1 -1
- package/dest/cmds/create_authwit.js +1 -1
- package/dest/cmds/deploy.d.ts +1 -1
- package/dest/cmds/deploy.d.ts.map +1 -1
- package/dest/cmds/deploy.js +46 -23
- package/dest/cmds/deploy_account.d.ts +1 -1
- package/dest/cmds/deploy_account.d.ts.map +1 -1
- package/dest/cmds/deploy_account.js +24 -18
- package/dest/cmds/import_test_accounts.d.ts +1 -1
- package/dest/cmds/index.d.ts +1 -1
- package/dest/cmds/index.js +3 -3
- package/dest/cmds/profile.d.ts +1 -1
- package/dest/cmds/profile.js +1 -1
- package/dest/cmds/register_contract.d.ts +1 -1
- package/dest/cmds/register_sender.d.ts +1 -1
- package/dest/cmds/send.d.ts +2 -2
- package/dest/cmds/send.d.ts.map +1 -1
- package/dest/cmds/send.js +29 -17
- package/dest/cmds/simulate.d.ts +1 -1
- package/dest/cmds/simulate.d.ts.map +1 -1
- package/dest/cmds/simulate.js +4 -4
- package/dest/storage/wallet_db.d.ts +5 -5
- package/dest/storage/wallet_db.d.ts.map +1 -1
- package/dest/storage/wallet_db.js +47 -32
- package/dest/utils/authorizations.d.ts +1 -1
- package/dest/utils/cli_wallet_and_node_wrapper.d.ts +1 -1
- package/dest/utils/cli_wallet_and_node_wrapper.d.ts.map +1 -1
- package/dest/utils/constants.d.ts +4 -0
- package/dest/utils/constants.d.ts.map +1 -0
- package/dest/utils/constants.js +7 -0
- package/dest/utils/ecdsa.d.ts +1 -1
- package/dest/utils/options/fees.d.ts +3 -2
- package/dest/utils/options/fees.d.ts.map +1 -1
- package/dest/utils/options/fees.js +3 -3
- package/dest/utils/options/index.d.ts +1 -1
- package/dest/utils/options/options.d.ts +1 -1
- package/dest/utils/options/options.js +1 -1
- package/dest/utils/profiling.d.ts +1 -1
- package/dest/utils/profiling.d.ts.map +1 -1
- package/dest/utils/profiling.js +9 -1
- package/dest/utils/wallet.d.ts +15 -10
- package/dest/utils/wallet.d.ts.map +1 -1
- package/dest/utils/wallet.js +61 -46
- package/package.json +17 -14
- package/src/bin/index.ts +18 -12
- package/src/cmds/authorize_action.ts +2 -2
- package/src/cmds/bridge_fee_juice.ts +3 -2
- package/src/cmds/check_tx.ts +10 -12
- package/src/cmds/create_account.ts +26 -19
- package/src/cmds/create_authwit.ts +1 -1
- package/src/cmds/deploy.ts +41 -22
- package/src/cmds/deploy_account.ts +23 -17
- package/src/cmds/index.ts +4 -4
- package/src/cmds/profile.ts +1 -1
- package/src/cmds/send.ts +23 -11
- package/src/cmds/simulate.ts +4 -7
- package/src/storage/wallet_db.ts +51 -38
- package/src/utils/cli_wallet_and_node_wrapper.ts +1 -1
- package/src/utils/constants.ts +4 -0
- package/src/utils/options/fees.ts +5 -4
- package/src/utils/options/options.ts +1 -1
- package/src/utils/profiling.ts +15 -1
- package/src/utils/wallet.ts +87 -61
package/README.md
CHANGED
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
anvil --host 127.0.0.1 --port 8545
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
2) In another terminal, start the Aztec
|
|
11
|
+
2) In another terminal, start the Aztec local network from `yarn-project/aztec`:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
cd yarn-project/aztec
|
|
15
|
-
NODE_NO_WARNINGS=1 ETHEREUM_HOSTS=http://127.0.0.1:8545 node ./dest/bin/index.js start --
|
|
15
|
+
NODE_NO_WARNINGS=1 ETHEREUM_HOSTS=http://127.0.0.1:8545 node ./dest/bin/index.js start --local-network
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
3) Run the wallet tests from `yarn-project/cli-wallet/test`:
|
package/dest/bin/index.d.ts
CHANGED
package/dest/bin/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
import { computeSecretHash } from '@aztec/aztec.js/crypto';
|
|
2
3
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
3
4
|
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
4
5
|
import { ProtocolContractAddress } from '@aztec/aztec.js/protocol';
|
|
6
|
+
import { BackendType, Barretenberg } from '@aztec/bb.js';
|
|
5
7
|
import { LOCALHOST } from '@aztec/cli/cli-utils';
|
|
6
8
|
import { createConsoleLogger, createLogger } from '@aztec/foundation/log';
|
|
7
9
|
import { openStoreAt } from '@aztec/kv-store/lmdb-v2';
|
|
8
10
|
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
9
11
|
import { Argument, Command, Option } from 'commander';
|
|
10
|
-
import { mkdirSync } from 'fs';
|
|
11
12
|
import { homedir } from 'os';
|
|
12
|
-
import {
|
|
13
|
-
import { fileURLToPath } from 'url';
|
|
13
|
+
import { join } from 'path';
|
|
14
14
|
import { injectCommands } from '../cmds/index.js';
|
|
15
15
|
import { Aliases, WalletDB } from '../storage/wallet_db.js';
|
|
16
16
|
import { CliWalletAndNodeWrapper } from '../utils/cli_wallet_and_node_wrapper.js';
|
|
@@ -56,17 +56,26 @@ function injectInternalCommands(program, log, db) {
|
|
|
56
56
|
'native',
|
|
57
57
|
'none'
|
|
58
58
|
]).env('PXE_PROVER').default('native')).addOption(new Option('-n, --node-url <string>', 'URL of the Aztec node to connect to').env('AZTEC_NODE_URL').default(`http://${LOCALHOST}:8080`)).hook('preSubcommand', async (command)=>{
|
|
59
|
+
// Skip initialization if user is just requesting help
|
|
60
|
+
if (command.args.includes('--help') || command.args.includes('-h')) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
59
63
|
const { dataDir, nodeUrl, prover } = command.optsWithGlobals();
|
|
60
64
|
const proverEnabled = prover !== 'none';
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
switch(prover){
|
|
66
|
+
case 'native':
|
|
67
|
+
await Barretenberg.initSingleton({
|
|
68
|
+
backend: BackendType.NativeUnixSocket
|
|
69
|
+
});
|
|
70
|
+
break;
|
|
71
|
+
case 'wasm':
|
|
72
|
+
await Barretenberg.initSingleton({
|
|
73
|
+
backend: BackendType.Wasm
|
|
74
|
+
});
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
66
77
|
const overridePXEConfig = {
|
|
67
78
|
proverEnabled,
|
|
68
|
-
bbBinaryPath: prover === 'native' ? bbBinaryPath : undefined,
|
|
69
|
-
bbWorkingDirectory: prover === 'native' ? bbWorkingDirectory : undefined,
|
|
70
79
|
dataDirectory: join(dataDir, 'pxe')
|
|
71
80
|
};
|
|
72
81
|
const node = createAztecNodeClient(nodeUrl);
|
|
@@ -89,6 +98,7 @@ function injectInternalCommands(program, log, db) {
|
|
|
89
98
|
injectCommands(program, userLog, debugLogger, walletAndNodeWrapper, db);
|
|
90
99
|
injectInternalCommands(program, userLog, db);
|
|
91
100
|
await program.parseAsync(process.argv);
|
|
101
|
+
await Barretenberg.destroySingleton();
|
|
92
102
|
}
|
|
93
103
|
main().catch((err)=>{
|
|
94
104
|
debugLogger.error(`Error in command execution`);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
2
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
3
3
|
import type { LogFn } from '@aztec/foundation/log';
|
|
4
|
-
export declare function authorizeAction(wallet: Wallet, from: AztecAddress, functionName: string, caller: AztecAddress, functionArgsIn: any[], contractArtifactPath: string, contractAddress: AztecAddress, log: LogFn): Promise<import("@aztec/
|
|
5
|
-
//# sourceMappingURL=
|
|
4
|
+
export declare function authorizeAction(wallet: Wallet, from: AztecAddress, functionName: string, caller: AztecAddress, functionArgsIn: any[], contractArtifactPath: string, contractAddress: AztecAddress, log: LogFn): Promise<import("@aztec/stdlib/tx").TxReceipt>;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplX2FjdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NtZHMvYXV0aG9yaXplX2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUluRCx3QkFBc0IsZUFBZSxDQUNuQyxNQUFNLEVBQUUsTUFBTSxFQUNkLElBQUksRUFBRSxZQUFZLEVBQ2xCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFDckIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixlQUFlLEVBQUUsWUFBWSxFQUM3QixHQUFHLEVBQUUsS0FBSyxpREE2QlgifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize_action.d.ts","sourceRoot":"","sources":["../../src/cmds/authorize_action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,GAAG,EAAE,EACrB,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAE,YAAY,EAC7B,GAAG,EAAE,KAAK
|
|
1
|
+
{"version":3,"file":"authorize_action.d.ts","sourceRoot":"","sources":["../../src/cmds/authorize_action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,GAAG,EAAE,EACrB,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAE,YAAY,EAC7B,GAAG,EAAE,KAAK,iDA6BX"}
|
|
@@ -7,14 +7,16 @@ export async function authorizeAction(wallet, from, functionName, caller, functi
|
|
|
7
7
|
if (isPrivate) {
|
|
8
8
|
throw new Error('Cannot authorize private function. To allow a third party to call a private function, please create an authorization witness via the create-authwit command');
|
|
9
9
|
}
|
|
10
|
-
const contract =
|
|
10
|
+
const contract = Contract.at(contractAddress, contractArtifact, wallet);
|
|
11
11
|
const action = contract.methods[functionName](...functionArgs);
|
|
12
12
|
const setAuthwitnessInteraction = await SetPublicAuthwitContractInteraction.create(wallet, from, {
|
|
13
13
|
caller,
|
|
14
14
|
action
|
|
15
15
|
}, true);
|
|
16
|
-
const witness = await setAuthwitnessInteraction.send(
|
|
17
|
-
|
|
16
|
+
const witness = await setAuthwitnessInteraction.send({
|
|
17
|
+
wait: {
|
|
18
|
+
timeout: DEFAULT_TX_TIMEOUT_S
|
|
19
|
+
}
|
|
18
20
|
});
|
|
19
21
|
log(`Authorized action ${functionName} on contract ${contractAddress} for caller ${caller}`);
|
|
20
22
|
return witness;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
4
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
5
|
export declare function bridgeL1FeeJuice(amount: bigint, recipient: AztecAddress, node: AztecNode, l1RpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mint: boolean, json: boolean, wait: boolean, interval: number | undefined, log: LogFn, debugLogger: Logger): Promise<readonly [Fr, bigint]>;
|
|
6
|
-
//# sourceMappingURL=
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2ZlZV9qdWljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NtZHMvYnJpZGdlX2ZlZV9qdWljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUt0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2hFLHdCQUFzQixnQkFBZ0IsQ0FDcEMsTUFBTSxFQUFFLE1BQU0sRUFDZCxTQUFTLEVBQUUsWUFBWSxFQUN2QixJQUFJLEVBQUUsU0FBUyxFQUNmLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsT0FBTyxFQUFFLE1BQU0sRUFDZixVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDOUIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsSUFBSSxFQUFFLE9BQU8sRUFDYixJQUFJLEVBQUUsT0FBTyxFQUNiLElBQUksRUFBRSxPQUFPLEVBQ2IsUUFBUSxvQkFBUyxFQUNqQixHQUFHLEVBQUUsS0FBSyxFQUNWLFdBQVcsRUFBRSxNQUFNLGtDQW1FcEIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge_fee_juice.d.ts","sourceRoot":"","sources":["../../src/cmds/bridge_fee_juice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge_fee_juice.d.ts","sourceRoot":"","sources":["../../src/cmds/bridge_fee_juice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKtD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,QAAQ,oBAAS,EACjB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,kCAmEpB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
|
|
2
2
|
import { ProtocolContractAddress } from '@aztec/aztec.js/protocol';
|
|
3
3
|
import { prettyPrintJSON } from '@aztec/cli/utils';
|
|
4
|
-
import { createEthereumChain
|
|
5
|
-
import {
|
|
4
|
+
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
5
|
+
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
6
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
7
|
import { getNonNullifiedL1ToL2MessageWitness } from '@aztec/stdlib/messaging';
|
|
7
8
|
export async function bridgeL1FeeJuice(amount, recipient, node, l1RpcUrls, chainId, privateKey, mnemonic, mint, json, wait, interval = 60_000, log, debugLogger) {
|
|
8
9
|
// Prepare L1 client
|
package/dest/cmds/check_tx.d.ts
CHANGED
|
@@ -3,4 +3,4 @@ import type { TxHash } from '@aztec/aztec.js/tx';
|
|
|
3
3
|
import type { LogFn } from '@aztec/foundation/log';
|
|
4
4
|
import type { CLIWallet } from '../utils/wallet.js';
|
|
5
5
|
export declare function checkTx(wallet: CLIWallet, aztecNode: AztecNode, txHash: TxHash, statusOnly: boolean, log: LogFn): Promise<import("@aztec/aztec.js/tx").TxStatus | undefined>;
|
|
6
|
-
//# sourceMappingURL=
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tfdHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NoZWNrX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSW5ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixPQUFPLENBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLE9BQU8sRUFDbkIsR0FBRyxFQUFFLEtBQUssOERBUVgifQ==
|
package/dest/cmds/check_tx.js
CHANGED
|
@@ -17,7 +17,10 @@ async function inspectTx(wallet, aztecNode, txHash, log) {
|
|
|
17
17
|
]);
|
|
18
18
|
// Base tx data
|
|
19
19
|
log(`Tx ${txHash.toString()}`);
|
|
20
|
-
log(` Status: ${receipt.status}
|
|
20
|
+
log(` Status: ${receipt.status}`);
|
|
21
|
+
if (receipt.executionResult) {
|
|
22
|
+
log(` Execution result: ${receipt.executionResult}`);
|
|
23
|
+
}
|
|
21
24
|
if (receipt.error) {
|
|
22
25
|
log(` Error: ${receipt.error}`);
|
|
23
26
|
}
|
|
@@ -64,7 +67,8 @@ async function inspectTx(wallet, aztecNode, txHash, log) {
|
|
|
64
67
|
const deployed = deployNullifiers[nullifier.toString()];
|
|
65
68
|
const note = deployed ? (await wallet.getNotes({
|
|
66
69
|
siloedNullifier: nullifier,
|
|
67
|
-
contractAddress: deployed
|
|
70
|
+
contractAddress: deployed,
|
|
71
|
+
scopes: 'ALL_SCOPES'
|
|
68
72
|
}))[0] : undefined;
|
|
69
73
|
const initialized = initNullifiers[nullifier.toString()];
|
|
70
74
|
const registered = classNullifiers[nullifier.toString()];
|
|
@@ -95,7 +99,6 @@ function inspectNote(note, artifactMap, log, text = 'Note') {
|
|
|
95
99
|
const artifact = artifactMap[note.contractAddress.toString()];
|
|
96
100
|
const contract = artifact?.name ?? note.contractAddress.toString();
|
|
97
101
|
log(` ${text} at ${contract}`);
|
|
98
|
-
log(` Recipient: ${toFriendlyAddress(note.recipient, artifactMap)}`);
|
|
99
102
|
for (const field of note.note.items){
|
|
100
103
|
log(` ${field.toString()}`);
|
|
101
104
|
}
|
|
@@ -129,13 +132,13 @@ async function getKnownNullifiers(wallet, artifactMap) {
|
|
|
129
132
|
}
|
|
130
133
|
async function getKnownArtifacts(wallet) {
|
|
131
134
|
const knownContractAddresses = await wallet.getContracts();
|
|
132
|
-
const knownContracts = (await Promise.all(knownContractAddresses.map((contractAddress)=>wallet.getContractMetadata(contractAddress)))).map((contractMetadata)=>contractMetadata.
|
|
135
|
+
const knownContracts = (await Promise.all(knownContractAddresses.map((contractAddress)=>wallet.getContractMetadata(contractAddress)))).map((contractMetadata)=>contractMetadata.instance);
|
|
133
136
|
const classIds = [
|
|
134
137
|
...new Set(knownContracts.map((contract)=>contract?.currentContractClassId))
|
|
135
138
|
];
|
|
136
|
-
const knownArtifacts = (await Promise.all(classIds.map((classId)=>classId ? wallet.
|
|
137
|
-
...
|
|
138
|
-
classId:
|
|
139
|
+
const knownArtifacts = (await Promise.all(classIds.map((classId)=>classId ? wallet.getContractArtifact(classId) : undefined))).map((artifact, index)=>artifact ? {
|
|
140
|
+
...artifact,
|
|
141
|
+
classId: classIds[index]
|
|
139
142
|
} : undefined);
|
|
140
143
|
const map = {};
|
|
141
144
|
for (const instance of knownContracts){
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
2
|
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
3
|
-
import { Fr } from '@aztec/foundation/
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
5
|
+
import type { AccountType } from '../utils/constants.js';
|
|
5
6
|
import { CLIFeeArgs } from '../utils/options/fees.js';
|
|
6
|
-
import {
|
|
7
|
+
import { CLIWallet } from '../utils/wallet.js';
|
|
7
8
|
export declare function createAccount(wallet: CLIWallet, aztecNode: AztecNode, accountType: AccountType, secretKey: Fr | undefined, publicKey: string | undefined, alias: string | undefined, deployer: AztecAddress | undefined, registerOnly: boolean, skipInitialization: boolean, publicDeploy: boolean, registerClass: boolean, wait: boolean, feeOpts: CLIFeeArgs, json: boolean, verbose: boolean, debugLogger: Logger, log: LogFn): Promise<{
|
|
8
9
|
alias: string | undefined;
|
|
9
10
|
address: AztecAddress;
|
|
10
11
|
secretKey: Fr;
|
|
11
12
|
salt: Fr;
|
|
12
13
|
}>;
|
|
13
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NyZWF0ZV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTNELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0Msd0JBQXNCLGFBQWEsQ0FDakMsTUFBTSxFQUFFLFNBQVMsRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLEVBQUUsR0FBRyxTQUFTLEVBQ3pCLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDekIsUUFBUSxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQ2xDLFlBQVksRUFBRSxPQUFPLEVBQ3JCLGtCQUFrQixFQUFFLE9BQU8sRUFDM0IsWUFBWSxFQUFFLE9BQU8sRUFDckIsYUFBYSxFQUFFLE9BQU8sRUFDdEIsSUFBSSxFQUFFLE9BQU8sRUFDYixPQUFPLEVBQUUsVUFBVSxFQUNuQixJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLOzs7OztHQXFIWCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_account.d.ts","sourceRoot":"","sources":["../../src/cmds/create_account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"create_account.d.ts","sourceRoot":"","sources":["../../src/cmds/create_account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,GAAG,SAAS,EACzB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,YAAY,EAAE,OAAO,EACrB,kBAAkB,EAAE,OAAO,EAC3B,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,EACtB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK;;;;;GAqHX"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
2
3
|
import { prettyPrintJSON } from '@aztec/cli/cli-utils';
|
|
3
|
-
import { Fr } from '@aztec/foundation/
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
5
|
import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
|
|
5
6
|
import { printProfileResult } from '../utils/profiling.js';
|
|
6
7
|
export async function createAccount(wallet, aztecNode, accountType, secretKey, publicKey, alias, deployer, registerOnly, skipInitialization, publicDeploy, registerClass, wait, feeOpts, json, verbose, debugLogger, log) {
|
|
@@ -29,7 +30,7 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
|
|
|
29
30
|
log(`Salt: ${salt.toString()}`);
|
|
30
31
|
log(`Init hash: ${account.getInstance().initializationHash.toString()}`);
|
|
31
32
|
}
|
|
32
|
-
let
|
|
33
|
+
let txHash;
|
|
33
34
|
let txReceipt;
|
|
34
35
|
if (!registerOnly) {
|
|
35
36
|
const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(aztecNode, wallet, address);
|
|
@@ -67,38 +68,43 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
|
|
|
67
68
|
};
|
|
68
69
|
}
|
|
69
70
|
} else {
|
|
70
|
-
|
|
71
|
+
if (verbose) {
|
|
72
|
+
printProfileResult(stats, log);
|
|
73
|
+
}
|
|
74
|
+
if (!json) {
|
|
75
|
+
log(`\nWaiting for account contract deployment...`);
|
|
76
|
+
}
|
|
77
|
+
const result = await deployMethod.send({
|
|
71
78
|
...deployAccountOpts,
|
|
72
79
|
fee: deployAccountOpts.fee ? {
|
|
73
80
|
...deployAccountOpts.fee,
|
|
74
81
|
gasSettings: estimatedGas
|
|
75
|
-
} : undefined
|
|
82
|
+
} : undefined,
|
|
83
|
+
wait: wait ? {
|
|
84
|
+
timeout: DEFAULT_TX_TIMEOUT_S,
|
|
85
|
+
returnReceipt: true
|
|
86
|
+
} : NO_WAIT
|
|
76
87
|
});
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
|
|
82
|
-
out.txHash = txHash;
|
|
83
|
-
if (wait) {
|
|
84
|
-
if (!json) {
|
|
85
|
-
log(`\nWaiting for account contract deployment...`);
|
|
86
|
-
}
|
|
87
|
-
txReceipt = await tx.wait({
|
|
88
|
-
timeout: DEFAULT_TX_TIMEOUT_S
|
|
89
|
-
});
|
|
88
|
+
const isReceipt = (data)=>'txHash' in data;
|
|
89
|
+
if (isReceipt(result)) {
|
|
90
|
+
txReceipt = result;
|
|
91
|
+
txHash = result.txHash;
|
|
90
92
|
out.txReceipt = {
|
|
91
93
|
status: txReceipt.status,
|
|
92
94
|
transactionFee: txReceipt.transactionFee
|
|
93
95
|
};
|
|
96
|
+
} else {
|
|
97
|
+
txHash = result;
|
|
94
98
|
}
|
|
99
|
+
debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
|
|
100
|
+
out.txHash = txHash;
|
|
95
101
|
}
|
|
96
102
|
}
|
|
97
103
|
if (json) {
|
|
98
104
|
log(prettyPrintJSON(out));
|
|
99
105
|
} else {
|
|
100
|
-
if (
|
|
101
|
-
log(`Deploy tx hash: ${
|
|
106
|
+
if (txHash) {
|
|
107
|
+
log(`Deploy tx hash: ${txHash.toString()}`);
|
|
102
108
|
}
|
|
103
109
|
if (txReceipt) {
|
|
104
110
|
log(`Deploy tx fee: ${txReceipt.transactionFee}`);
|
|
@@ -2,4 +2,4 @@ import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
|
2
2
|
import type { LogFn } from '@aztec/foundation/log';
|
|
3
3
|
import type { CLIWallet } from '../utils/wallet.js';
|
|
4
4
|
export declare function createAuthwit(wallet: CLIWallet, from: AztecAddress, functionName: string, caller: AztecAddress, functionArgsIn: any[], contractArtifactPath: string, contractAddress: AztecAddress, log: LogFn): Promise<import("@aztec/stdlib/auth-witness").AuthWitness>;
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2F1dGh3aXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NyZWF0ZV9hdXRod2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzlELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixhQUFhLENBQ2pDLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLElBQUksRUFBRSxZQUFZLEVBQ2xCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFDckIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixlQUFlLEVBQUUsWUFBWSxFQUM3QixHQUFHLEVBQUUsS0FBSyw2REF1QlgifQ==
|
|
@@ -5,7 +5,7 @@ export async function createAuthwit(wallet, from, functionName, caller, function
|
|
|
5
5
|
if (!isPrivate) {
|
|
6
6
|
throw new Error('Cannot create an authwit for a public function. To allow a third party to call a public function, please authorize the action via the authorize-action command');
|
|
7
7
|
}
|
|
8
|
-
const contract =
|
|
8
|
+
const contract = Contract.at(contractAddress, contractArtifact, wallet);
|
|
9
9
|
const call = await contract.methods[functionName](...functionArgs).getFunctionCall();
|
|
10
10
|
const witness = await wallet.createAuthWit(from, {
|
|
11
11
|
caller,
|
package/dest/cmds/deploy.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ import { PublicKeys } from '@aztec/stdlib/keys';
|
|
|
6
6
|
import { CLIFeeArgs } from '../utils/options/fees.js';
|
|
7
7
|
import type { CLIWallet } from '../utils/wallet.js';
|
|
8
8
|
export declare function deploy(wallet: CLIWallet, node: AztecNode, deployer: AztecAddress, artifactPath: string, json: boolean, publicKeys: PublicKeys | undefined, rawArgs: any[], salt: Fr | undefined, initializer: string | undefined, skipInstancePublication: boolean, skipClassPublication: boolean, skipInitialization: boolean | undefined, wait: boolean, feeOpts: CLIFeeArgs, verbose: boolean, timeout: number | undefined, debugLogger: Logger, log: LogFn): Promise<AztecAddress | undefined>;
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY21kcy9kZXBsb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCx3QkFBc0IsTUFBTSxDQUMxQixNQUFNLEVBQUUsU0FBUyxFQUNqQixJQUFJLEVBQUUsU0FBUyxFQUNmLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLElBQUksRUFBRSxPQUFPLEVBQ2IsVUFBVSxFQUFFLFVBQVUsR0FBRyxTQUFTLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFDZCxJQUFJLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFDcEIsV0FBVyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQy9CLHVCQUF1QixFQUFFLE9BQU8sRUFDaEMsb0JBQW9CLEVBQUUsT0FBTyxFQUM3QixrQkFBa0IsRUFBRSxPQUFPLEdBQUcsU0FBUyxFQUN2QyxJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxVQUFVLEVBQ25CLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLE9BQU8sb0JBQStCLEVBQ3RDLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLLHFDQWtIWCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,MAAM,CAC1B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,OAAO,EAAE,GAAG,EAAE,EACd,IAAI,EAAE,EAAE,GAAG,SAAS,EACpB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,uBAAuB,EAAE,OAAO,EAChC,oBAAoB,EAAE,OAAO,EAC7B,kBAAkB,EAAE,OAAO,GAAG,SAAS,EACvC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,oBAA+B,EACtC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,qCAkHX"}
|
package/dest/cmds/deploy.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
2
3
|
import { ContractDeployer } from '@aztec/aztec.js/deployment';
|
|
3
4
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
4
5
|
import { encodeArgs, getContractArtifact, prettyPrintJSON } from '@aztec/cli/utils';
|
|
@@ -58,38 +59,60 @@ export async function deploy(wallet, node, deployer, artifactPath, json, publicK
|
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
61
|
} else {
|
|
61
|
-
const tx = deploy1.send(deployOpts);
|
|
62
62
|
if (verbose) {
|
|
63
63
|
printProfileResult(stats, log);
|
|
64
64
|
}
|
|
65
|
-
const txHash = await tx.getTxHash();
|
|
66
|
-
debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
|
|
67
|
-
out.hash = txHash;
|
|
68
65
|
const { address, partialAddress } = deploy1;
|
|
69
66
|
const instance = await deploy1.getInstance();
|
|
70
|
-
if (!json) {
|
|
71
|
-
log(`Contract deployed at ${address?.toString()}`);
|
|
72
|
-
log(`Contract partial address ${(await partialAddress)?.toString()}`);
|
|
73
|
-
log(`Contract init hash ${instance.initializationHash.toString()}`);
|
|
74
|
-
log(`Deployment tx hash: ${txHash.toString()}`);
|
|
75
|
-
log(`Deployment salt: ${salt.toString()}`);
|
|
76
|
-
log(`Deployer: ${instance.deployer.toString()}`);
|
|
77
|
-
} else {
|
|
78
|
-
out.contract = {
|
|
79
|
-
address: address?.toString(),
|
|
80
|
-
partialAddress: (await partialAddress)?.toString(),
|
|
81
|
-
initializationHash: instance.initializationHash.toString(),
|
|
82
|
-
salt: salt.toString()
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
67
|
if (wait) {
|
|
86
|
-
const
|
|
87
|
-
|
|
68
|
+
const receipt = await deploy1.send({
|
|
69
|
+
...deployOpts,
|
|
70
|
+
wait: {
|
|
71
|
+
timeout,
|
|
72
|
+
returnReceipt: true
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
const txHash = receipt.txHash;
|
|
76
|
+
debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
|
|
77
|
+
out.hash = txHash;
|
|
78
|
+
if (!json) {
|
|
79
|
+
log(`Contract deployed at ${address?.toString()}`);
|
|
80
|
+
log(`Contract partial address ${(await partialAddress)?.toString()}`);
|
|
81
|
+
log(`Contract init hash ${instance.initializationHash.toString()}`);
|
|
82
|
+
log(`Deployment tx hash: ${txHash.toString()}`);
|
|
83
|
+
log(`Deployment salt: ${salt.toString()}`);
|
|
84
|
+
log(`Deployer: ${instance.deployer.toString()}`);
|
|
85
|
+
log(`Transaction fee: ${receipt.transactionFee?.toString()}`);
|
|
86
|
+
} else {
|
|
87
|
+
out.contract = {
|
|
88
|
+
address: address?.toString(),
|
|
89
|
+
partialAddress: (await partialAddress)?.toString(),
|
|
90
|
+
initializationHash: instance.initializationHash.toString(),
|
|
91
|
+
salt: salt.toString(),
|
|
92
|
+
transactionFee: receipt.transactionFee?.toString()
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
} else {
|
|
96
|
+
const txHash = await deploy1.send({
|
|
97
|
+
...deployOpts,
|
|
98
|
+
wait: NO_WAIT
|
|
88
99
|
});
|
|
100
|
+
debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
|
|
101
|
+
out.hash = txHash;
|
|
89
102
|
if (!json) {
|
|
90
|
-
log(`
|
|
103
|
+
log(`Contract deployed at ${address?.toString()}`);
|
|
104
|
+
log(`Contract partial address ${(await partialAddress)?.toString()}`);
|
|
105
|
+
log(`Contract init hash ${instance.initializationHash.toString()}`);
|
|
106
|
+
log(`Deployment tx hash: ${txHash.toString()}`);
|
|
107
|
+
log(`Deployment salt: ${salt.toString()}`);
|
|
108
|
+
log(`Deployer: ${instance.deployer.toString()}`);
|
|
91
109
|
} else {
|
|
92
|
-
out.contract
|
|
110
|
+
out.contract = {
|
|
111
|
+
address: address?.toString(),
|
|
112
|
+
partialAddress: (await partialAddress)?.toString(),
|
|
113
|
+
initializationHash: instance.initializationHash.toString(),
|
|
114
|
+
salt: salt.toString()
|
|
115
|
+
};
|
|
93
116
|
}
|
|
94
117
|
}
|
|
95
118
|
}
|
|
@@ -4,4 +4,4 @@ import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
|
4
4
|
import type { CLIFeeArgs } from '../utils/options/fees.js';
|
|
5
5
|
import type { CLIWallet } from '../utils/wallet.js';
|
|
6
6
|
export declare function deployAccount(wallet: CLIWallet, aztecNode: AztecNode, address: AztecAddress, wait: boolean, deployer: AztecAddress | undefined, registerClass: boolean, publicDeploy: boolean, skipInitialization: boolean, feeOpts: CLIFeeArgs, json: boolean, verbose: boolean, debugLogger: Logger, log: LogFn): Promise<void>;
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2RlcGxveV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsd0JBQXNCLGFBQWEsQ0FDakMsTUFBTSxFQUFFLFNBQVMsRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsT0FBTyxFQUFFLFlBQVksRUFDckIsSUFBSSxFQUFFLE9BQU8sRUFDYixRQUFRLEVBQUUsWUFBWSxHQUFHLFNBQVMsRUFDbEMsYUFBYSxFQUFFLE9BQU8sRUFDdEIsWUFBWSxFQUFFLE9BQU8sRUFDckIsa0JBQWtCLEVBQUUsT0FBTyxFQUMzQixPQUFPLEVBQUUsVUFBVSxFQUNuQixJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLLGlCQW9HWCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_account.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy_account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy_account.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy_account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,OAAO,EACrB,kBAAkB,EAAE,OAAO,EAC3B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBAoGX"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
2
3
|
import { prettyPrintJSON } from '@aztec/cli/cli-utils';
|
|
3
4
|
import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
|
|
4
5
|
import { printProfileResult } from '../utils/profiling.js';
|
|
@@ -21,7 +22,7 @@ export async function deployAccount(wallet, aztecNode, address, wait, deployer,
|
|
|
21
22
|
log(`Salt: ${salt.toString()}`);
|
|
22
23
|
log(`Init hash: ${initializationHash.toString()}`);
|
|
23
24
|
}
|
|
24
|
-
let
|
|
25
|
+
let txHash;
|
|
25
26
|
let txReceipt;
|
|
26
27
|
const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(aztecNode, wallet, address);
|
|
27
28
|
const delegatedDeployment = deployer && !account.address.equals(deployer);
|
|
@@ -58,37 +59,42 @@ export async function deployAccount(wallet, aztecNode, address, wait, deployer,
|
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
61
|
} else {
|
|
61
|
-
|
|
62
|
+
if (verbose) {
|
|
63
|
+
printProfileResult(stats, log);
|
|
64
|
+
}
|
|
65
|
+
if (!json) {
|
|
66
|
+
log(`\nWaiting for account contract deployment...`);
|
|
67
|
+
}
|
|
68
|
+
const result = await deployMethod.send({
|
|
62
69
|
...deployAccountOpts,
|
|
63
70
|
fee: deployAccountOpts.fee ? {
|
|
64
71
|
...deployAccountOpts.fee,
|
|
65
72
|
gasSettings: estimatedGas
|
|
66
|
-
} : undefined
|
|
73
|
+
} : undefined,
|
|
74
|
+
wait: wait ? {
|
|
75
|
+
timeout: DEFAULT_TX_TIMEOUT_S,
|
|
76
|
+
returnReceipt: true
|
|
77
|
+
} : NO_WAIT
|
|
67
78
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
|
|
73
|
-
out.txHash = txHash;
|
|
74
|
-
if (wait) {
|
|
75
|
-
if (!json) {
|
|
76
|
-
log(`\nWaiting for account contract deployment...`);
|
|
77
|
-
}
|
|
78
|
-
txReceipt = await tx.wait({
|
|
79
|
-
timeout: DEFAULT_TX_TIMEOUT_S
|
|
80
|
-
});
|
|
79
|
+
const isReceipt = (data)=>'txHash' in data;
|
|
80
|
+
if (isReceipt(result)) {
|
|
81
|
+
txReceipt = result;
|
|
82
|
+
txHash = result.txHash;
|
|
81
83
|
out.txReceipt = {
|
|
82
84
|
status: txReceipt.status,
|
|
83
85
|
transactionFee: txReceipt.transactionFee
|
|
84
86
|
};
|
|
87
|
+
} else {
|
|
88
|
+
txHash = result;
|
|
85
89
|
}
|
|
90
|
+
debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
|
|
91
|
+
out.txHash = txHash;
|
|
86
92
|
}
|
|
87
93
|
if (json) {
|
|
88
94
|
log(prettyPrintJSON(out));
|
|
89
95
|
} else {
|
|
90
|
-
if (
|
|
91
|
-
log(`Deploy tx hash: ${
|
|
96
|
+
if (txHash) {
|
|
97
|
+
log(`Deploy tx hash: ${txHash.toString()}`);
|
|
92
98
|
}
|
|
93
99
|
if (txReceipt) {
|
|
94
100
|
log(`Deploy tx fee: ${txReceipt.transactionFee}`);
|
|
@@ -2,4 +2,4 @@ import type { LogFn } from '@aztec/foundation/log';
|
|
|
2
2
|
import type { WalletDB } from '../storage/wallet_db.js';
|
|
3
3
|
import type { CLIWallet } from '../utils/wallet.js';
|
|
4
4
|
export declare function importTestAccounts(wallet: CLIWallet, db: WalletDB, json: boolean, log: LogFn): Promise<void>;
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0X3Rlc3RfYWNjb3VudHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2ltcG9ydF90ZXN0X2FjY291bnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxpQkFrQ2xHIn0=
|
package/dest/cmds/index.d.ts
CHANGED
|
@@ -3,4 +3,4 @@ import { type Command } from 'commander';
|
|
|
3
3
|
import type { WalletDB } from '../storage/wallet_db.js';
|
|
4
4
|
import type { CliWalletAndNodeWrapper } from '../utils/cli_wallet_and_node_wrapper.js';
|
|
5
5
|
export declare function injectCommands(program: Command, log: LogFn, debugLogger: Logger, walletAndNodeWrapper: CliWalletAndNodeWrapper, db: WalletDB): Command;
|
|
6
|
-
//# sourceMappingURL=
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQVUsTUFBTSxXQUFXLENBQUM7QUFHakQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQXdCdkYsd0JBQWdCLGNBQWMsQ0FDNUIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsR0FBRyxFQUFFLEtBQUssRUFDVixXQUFXLEVBQUUsTUFBTSxFQUNuQixvQkFBb0IsRUFBRSx1QkFBdUIsRUFDN0MsRUFBRSxFQUFFLFFBQVEsV0FvbkJiIn0=
|
package/dest/cmds/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getIdentities } from '@aztec/accounts/utils';
|
|
2
2
|
import { TxHash } from '@aztec/aztec.js/tx';
|
|
3
3
|
import { ETHEREUM_HOSTS, PRIVATE_KEY, addOptions, createSecretKeyOption, l1ChainIdOption, parseBigint, parseFieldFromHexString, parsePublicKey } from '@aztec/cli/utils';
|
|
4
|
-
import { randomBytes } from '@aztec/foundation/crypto';
|
|
4
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
5
5
|
import { Option } from 'commander';
|
|
6
6
|
import inquirer from 'inquirer';
|
|
7
7
|
import { ARTIFACT_DESCRIPTION, CLIFeeArgs, aliasedAddressParser, aliasedSecretKeyParser, aliasedTxHashParser, artifactPathFromPromiseOrAlias, artifactPathParser, cleanupAuthWitnesses, createAccountOption, createAliasOption, createArgsOption, createArtifactOption, createAuthwitnessOption, createContractAddressOption, createDebugExecutionStepsDirOption, createTypeOption, createVerboseOption, integerArgParser } from '../utils/options/index.js';
|
|
@@ -13,7 +13,7 @@ export function injectCommands(program, log, debugLogger, walletAndNodeWrapper,
|
|
|
13
13
|
const { importTestAccounts } = await import('./import_test_accounts.js');
|
|
14
14
|
await importTestAccounts(wallet, db, json, log);
|
|
15
15
|
});
|
|
16
|
-
const createAccountCommand = program.command('create-account').description('Creates an aztec account that can be used for sending transactions. Registers the account on the PXE and deploys an account contract. Uses a Schnorr
|
|
16
|
+
const createAccountCommand = program.command('create-account').description('Creates an aztec account that can be used for sending transactions. Registers the account on the PXE and deploys an account contract. Uses a Schnorr account which uses an immutable key for authentication.').summary('Creates an aztec account that can be used for sending transactions.').addOption(createAccountOption('Alias or address of the account performing the deployment', !db, db)).option('--skip-initialization', 'Skip initializing the account contract. Useful for publicly deploying an existing account.').option('--public-deploy', 'Publishes the account contract instance (and the class, if needed). Needed if the contract contains public functions.').option('--register-class', 'Register the contract class (useful for when the contract class has not been deployed yet).').option('-p, --public-key <string>', 'Public key that identifies a private signing key stored outside of the wallet. Used for ECDSA SSH accounts over the secp256r1 curve.').addOption(createSecretKeyOption('Secret key for account. Uses random by default.', false, (sk)=>aliasedSecretKeyParser(sk, db)).conflicts('public-key')).addOption(createAliasOption('Alias for the account. Used for easy reference in subsequent commands.', !db)).addOption(createTypeOption(true)).option('--register-only', 'Just register the account on the Wallet. Do not deploy or initialize the account contract.').option('--json', 'Emit output as json')// `options.wait` is default true. Passing `--no-wait` will set it to false.
|
|
17
17
|
// https://github.com/tj/commander.js#other-option-types-negatable-boolean-and-booleanvalue
|
|
18
18
|
.option('--no-wait', 'Skip waiting for the contract to be deployed. Print the hash of deployment transaction').addOption(createVerboseOption());
|
|
19
19
|
addOptions(createAccountCommand, CLIFeeArgs.getOptions()).action(async (_options, command)=>{
|
|
@@ -82,7 +82,7 @@ export function injectCommands(program, log, debugLogger, walletAndNodeWrapper,
|
|
|
82
82
|
const authWitnesses = cleanupAuthWitnesses(authWitnessArray);
|
|
83
83
|
const sentTx = await send(wallet, node, parsedFromAddress, functionName, args, artifactPath, contractAddress, wait, alias, CLIFeeArgs.parse(options, log, db), authWitnesses, verbose, log);
|
|
84
84
|
if (db && sentTx) {
|
|
85
|
-
const txAlias = alias ? alias : `${functionName}-${randomBytes(16).toString()}`;
|
|
85
|
+
const txAlias = alias ? alias : `${functionName}-${randomBytes(16).toString('hex')}`;
|
|
86
86
|
await db.storeTx(sentTx, log, txAlias);
|
|
87
87
|
}
|
|
88
88
|
});
|
package/dest/cmds/profile.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ import type { LogFn } from '@aztec/foundation/log';
|
|
|
5
5
|
import type { CLIFeeArgs } from '../utils/options/fees.js';
|
|
6
6
|
import type { CLIWallet } from '../utils/wallet.js';
|
|
7
7
|
export declare function profile(wallet: CLIWallet, node: AztecNode, from: AztecAddress, functionName: string, functionArgsIn: any[], contractArtifactPath: string, contractAddress: AztecAddress, debugOutputPath: string | undefined, feeOpts: CLIFeeArgs, authWitnesses: AuthWitness[], log: LogFn): Promise<void>;
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NtZHMvcHJvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFNbkQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsd0JBQXNCLE9BQU8sQ0FDM0IsTUFBTSxFQUFFLFNBQVMsRUFDakIsSUFBSSxFQUFFLFNBQVMsRUFDZixJQUFJLEVBQUUsWUFBWSxFQUNsQixZQUFZLEVBQUUsTUFBTSxFQUNwQixjQUFjLEVBQUUsR0FBRyxFQUFFLEVBQ3JCLG9CQUFvQixFQUFFLE1BQU0sRUFDNUIsZUFBZSxFQUFFLFlBQVksRUFDN0IsZUFBZSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQ25CLGFBQWEsRUFBRSxXQUFXLEVBQUUsRUFDNUIsR0FBRyxFQUFFLEtBQUssaUJBcUJYIn0=
|
package/dest/cmds/profile.js
CHANGED
|
@@ -6,7 +6,7 @@ import path from 'path';
|
|
|
6
6
|
import { printProfileResult } from '../utils/profiling.js';
|
|
7
7
|
export async function profile(wallet, node, from, functionName, functionArgsIn, contractArtifactPath, contractAddress, debugOutputPath, feeOpts, authWitnesses, log) {
|
|
8
8
|
const { functionArgs, contractArtifact } = await prepTx(contractArtifactPath, functionName, functionArgsIn, log);
|
|
9
|
-
const contract =
|
|
9
|
+
const contract = Contract.at(contractAddress, contractArtifact, wallet);
|
|
10
10
|
const call = contract.methods[functionName](...functionArgs);
|
|
11
11
|
const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(node, wallet, from);
|
|
12
12
|
const result = await call.profile({
|
|
@@ -5,4 +5,4 @@ import type { AztecNode } from '@aztec/aztec.js/node';
|
|
|
5
5
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
6
6
|
import type { LogFn } from '@aztec/foundation/log';
|
|
7
7
|
export declare function registerContract(wallet: Wallet, node: AztecNode, address: AztecAddress, artifactPath: string, log: LogFn, initializer?: string, publicKeys?: PublicKeys, rawArgs?: any[], salt?: Fr, deployer?: AztecAddress): Promise<import("@aztec/aztec.js/contracts").ContractInstanceWithAddress>;
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXJfY29udHJhY3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL3JlZ2lzdGVyX2NvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQsd0JBQXNCLGdCQUFnQixDQUNwQyxNQUFNLEVBQUUsTUFBTSxFQUNkLElBQUksRUFBRSxTQUFTLEVBQ2YsT0FBTyxFQUFFLFlBQVksRUFDckIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsR0FBRyxFQUFFLEtBQUssRUFDVixXQUFXLENBQUMsRUFBRSxNQUFNLEVBQ3BCLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFDdkIsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQ2YsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUNULFFBQVEsQ0FBQyxFQUFFLFlBQVksNEVBc0J4QiJ9
|