@aztec/cli-wallet 0.0.1-commit.96bb3f7 → 0.0.1-commit.993d240
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/bin/index.js +1 -1
- 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 +4 -2
- package/dest/cmds/check_tx.d.ts +1 -1
- package/dest/cmds/check_tx.d.ts.map +1 -1
- package/dest/cmds/check_tx.js +45 -14
- 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 +42 -25
- package/dest/cmds/create_authwit.d.ts +2 -2
- package/dest/cmds/create_authwit.d.ts.map +1 -1
- package/dest/cmds/deploy.d.ts +5 -4
- package/dest/cmds/deploy.d.ts.map +1 -1
- package/dest/cmds/deploy.js +64 -32
- package/dest/cmds/deploy_account.d.ts +4 -3
- package/dest/cmds/deploy_account.d.ts.map +1 -1
- package/dest/cmds/deploy_account.js +37 -20
- package/dest/cmds/get_fee_juice_balance.d.ts +5 -0
- package/dest/cmds/get_fee_juice_balance.d.ts.map +1 -0
- package/dest/cmds/get_fee_juice_balance.js +27 -0
- package/dest/cmds/index.d.ts +1 -1
- package/dest/cmds/index.d.ts.map +1 -1
- package/dest/cmds/index.js +31 -15
- package/dest/cmds/send.d.ts +5 -4
- package/dest/cmds/send.d.ts.map +1 -1
- package/dest/cmds/send.js +32 -16
- package/dest/cmds/simulate.d.ts +1 -1
- package/dest/cmds/simulate.d.ts.map +1 -1
- package/dest/cmds/simulate.js +3 -3
- package/dest/storage/wallet_db.d.ts +6 -1
- package/dest/storage/wallet_db.d.ts.map +1 -1
- package/dest/storage/wallet_db.js +60 -31
- 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 +32 -9
- package/dest/utils/options/options.d.ts +2 -2
- package/dest/utils/options/options.d.ts.map +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 -5
- package/dest/utils/wallet.d.ts.map +1 -1
- package/dest/utils/wallet.js +129 -54
- package/package.json +17 -16
- package/src/bin/index.ts +1 -1
- package/src/cmds/authorize_action.ts +1 -1
- package/src/cmds/check_tx.ts +50 -19
- package/src/cmds/create_account.ts +44 -24
- package/src/cmds/deploy.ts +63 -36
- package/src/cmds/deploy_account.ts +38 -19
- package/src/cmds/get_fee_juice_balance.ts +37 -0
- package/src/cmds/index.ts +60 -6
- package/src/cmds/send.ts +32 -12
- package/src/cmds/simulate.ts +4 -7
- package/src/storage/wallet_db.ts +63 -36
- package/src/utils/options/fees.ts +39 -9
- package/src/utils/profiling.ts +15 -1
- package/src/utils/wallet.ts +138 -70
package/dest/bin/index.js
CHANGED
|
@@ -47,7 +47,7 @@ function injectInternalCommands(program, log, db) {
|
|
|
47
47
|
return program;
|
|
48
48
|
}
|
|
49
49
|
/** CLI wallet main entrypoint */ async function main() {
|
|
50
|
-
const walletVersion = getPackageVersion()
|
|
50
|
+
const walletVersion = getPackageVersion();
|
|
51
51
|
const db = WalletDB.getInstance();
|
|
52
52
|
const walletAndNodeWrapper = new CliWalletAndNodeWrapper();
|
|
53
53
|
const program = new Command('wallet');
|
|
@@ -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("
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
export declare function authorizeAction(wallet: Wallet, from: AztecAddress, functionName: string, caller: AztecAddress, functionArgsIn: any[], contractArtifactPath: string, contractAddress: AztecAddress, log: LogFn): Promise<import("@aztec/aztec.js/contracts").TxSendResultMined<import("@aztec/stdlib/tx").TxReceipt>>;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplX2FjdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NtZHMvYXV0aG9yaXplX2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUluRCx3QkFBc0IsZUFBZSxDQUNuQyxNQUFNLEVBQUUsTUFBTSxFQUNkLElBQUksRUFBRSxZQUFZLEVBQ2xCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFDckIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixlQUFlLEVBQUUsWUFBWSxFQUM3QixHQUFHLEVBQUUsS0FBSyx3R0E2QlgifQ==
|
|
@@ -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,wGA6BX"}
|
|
@@ -13,8 +13,10 @@ export async function authorizeAction(wallet, from, functionName, caller, functi
|
|
|
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;
|
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=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tfdHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NoZWNrX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBUW5ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixPQUFPLENBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLE9BQU8sRUFDbkIsR0FBRyxFQUFFLEtBQUssOERBUVgifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check_tx.d.ts","sourceRoot":"","sources":["../../src/cmds/check_tx.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"check_tx.d.ts","sourceRoot":"","sources":["../../src/cmds/check_tx.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAQnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EACnB,GAAG,EAAE,KAAK,8DAQX"}
|
package/dest/cmds/check_tx.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProtocolContractAddress } from '@aztec/aztec.js/protocol';
|
|
2
|
-
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
2
|
+
import { computeSiloedPrivateInitializationNullifier, computeSiloedPublicInitializationNullifier, siloNullifier } from '@aztec/stdlib/hash';
|
|
3
3
|
export async function checkTx(wallet, aztecNode, txHash, statusOnly, log) {
|
|
4
4
|
if (statusOnly) {
|
|
5
5
|
const receipt = await aztecNode.getTxReceipt(txHash);
|
|
@@ -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
|
}
|
|
@@ -58,13 +61,15 @@ async function inspectTx(wallet, aztecNode, txHash, log) {
|
|
|
58
61
|
// Nullifiers
|
|
59
62
|
const nullifierCount = effects.nullifiers.length;
|
|
60
63
|
const { deployNullifiers, initNullifiers, classNullifiers } = await getKnownNullifiers(wallet, artifactMap);
|
|
64
|
+
const accounts = (await wallet.getAccounts()).map((a)=>a.item);
|
|
61
65
|
if (nullifierCount > 0) {
|
|
62
66
|
log(' Nullifiers:');
|
|
63
67
|
for (const nullifier of effects.nullifiers){
|
|
64
68
|
const deployed = deployNullifiers[nullifier.toString()];
|
|
65
69
|
const note = deployed ? (await wallet.getNotes({
|
|
66
70
|
siloedNullifier: nullifier,
|
|
67
|
-
contractAddress: deployed
|
|
71
|
+
contractAddress: deployed,
|
|
72
|
+
scopes: accounts
|
|
68
73
|
}))[0] : undefined;
|
|
69
74
|
const initialized = initNullifiers[nullifier.toString()];
|
|
70
75
|
const registered = classNullifiers[nullifier.toString()];
|
|
@@ -108,17 +113,22 @@ function toFriendlyAddress(address, artifactMap) {
|
|
|
108
113
|
}
|
|
109
114
|
async function getKnownNullifiers(wallet, artifactMap) {
|
|
110
115
|
const knownContracts = await wallet.getContracts();
|
|
111
|
-
const
|
|
112
|
-
|
|
116
|
+
const [contractResults, classResults] = await Promise.all([
|
|
117
|
+
Promise.all(knownContracts.map((contract)=>getContractNullifiers(wallet, contract))),
|
|
118
|
+
Promise.all(Object.values(artifactMap).map((artifact)=>getClassNullifier(artifact)))
|
|
119
|
+
]);
|
|
113
120
|
const initNullifiers = {};
|
|
114
121
|
const deployNullifiers = {};
|
|
115
122
|
const classNullifiers = {};
|
|
116
|
-
for (const contract of
|
|
117
|
-
|
|
118
|
-
|
|
123
|
+
for (const { contract, deployNullifier, privateInitNullifier, publicInitNullifier } of contractResults){
|
|
124
|
+
deployNullifiers[deployNullifier.toString()] = contract;
|
|
125
|
+
if (privateInitNullifier) {
|
|
126
|
+
initNullifiers[privateInitNullifier.toString()] = contract;
|
|
127
|
+
}
|
|
128
|
+
initNullifiers[publicInitNullifier.toString()] = contract;
|
|
119
129
|
}
|
|
120
|
-
for (const
|
|
121
|
-
classNullifiers[
|
|
130
|
+
for (const { nullifier, label } of classResults){
|
|
131
|
+
classNullifiers[nullifier.toString()] = label;
|
|
122
132
|
}
|
|
123
133
|
return {
|
|
124
134
|
initNullifiers,
|
|
@@ -126,15 +136,36 @@ async function getKnownNullifiers(wallet, artifactMap) {
|
|
|
126
136
|
classNullifiers
|
|
127
137
|
};
|
|
128
138
|
}
|
|
139
|
+
async function getContractNullifiers(wallet, contract) {
|
|
140
|
+
const deployerAddress = ProtocolContractAddress.ContractInstanceRegistry;
|
|
141
|
+
const deployNullifier = await siloNullifier(deployerAddress, contract.toField());
|
|
142
|
+
const metadata = await wallet.getContractMetadata(contract);
|
|
143
|
+
const privateInitNullifier = metadata.instance ? await computeSiloedPrivateInitializationNullifier(contract, metadata.instance.initializationHash) : undefined;
|
|
144
|
+
const publicInitNullifier = await computeSiloedPublicInitializationNullifier(contract);
|
|
145
|
+
return {
|
|
146
|
+
contract,
|
|
147
|
+
deployNullifier,
|
|
148
|
+
privateInitNullifier,
|
|
149
|
+
publicInitNullifier
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
async function getClassNullifier(artifact) {
|
|
153
|
+
const classRegistryAddress = ProtocolContractAddress.ContractClassRegistry;
|
|
154
|
+
const nullifier = await siloNullifier(classRegistryAddress, artifact.classId);
|
|
155
|
+
return {
|
|
156
|
+
nullifier,
|
|
157
|
+
label: `${artifact.name}Class<${artifact.classId}>`
|
|
158
|
+
};
|
|
159
|
+
}
|
|
129
160
|
async function getKnownArtifacts(wallet) {
|
|
130
161
|
const knownContractAddresses = await wallet.getContracts();
|
|
131
|
-
const knownContracts = (await Promise.all(knownContractAddresses.map((contractAddress)=>wallet.getContractMetadata(contractAddress)))).map((contractMetadata)=>contractMetadata.
|
|
162
|
+
const knownContracts = (await Promise.all(knownContractAddresses.map((contractAddress)=>wallet.getContractMetadata(contractAddress)))).map((contractMetadata)=>contractMetadata.instance);
|
|
132
163
|
const classIds = [
|
|
133
164
|
...new Set(knownContracts.map((contract)=>contract?.currentContractClassId))
|
|
134
165
|
];
|
|
135
|
-
const knownArtifacts = (await Promise.all(classIds.map((classId)=>classId ? wallet.
|
|
136
|
-
...
|
|
137
|
-
classId:
|
|
166
|
+
const knownArtifacts = (await Promise.all(classIds.map((classId)=>classId ? wallet.getContractArtifact(classId) : undefined))).map((artifact, index)=>artifact ? {
|
|
167
|
+
...artifact,
|
|
168
|
+
classId: classIds[index]
|
|
138
169
|
} : undefined);
|
|
139
170
|
const map = {};
|
|
140
171
|
for (const instance of knownContracts){
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import type
|
|
2
|
+
import { type AztecNode } from '@aztec/aztec.js/node';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
5
|
+
import { TxStatus } from '@aztec/stdlib/tx';
|
|
5
6
|
import type { AccountType } from '../utils/constants.js';
|
|
6
7
|
import { CLIFeeArgs } from '../utils/options/fees.js';
|
|
7
8
|
import { CLIWallet } from '../utils/wallet.js';
|
|
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<{
|
|
9
|
+
export declare function createAccount(wallet: CLIWallet, aztecNode: AztecNode, accountType: AccountType, secretKey: Fr | undefined, salt: Fr | undefined, publicKey: string | undefined, alias: string | undefined, deployer: AztecAddress | undefined, registerOnly: boolean, skipInitialization: boolean, publicDeploy: boolean, registerClass: boolean, wait: boolean, feeOpts: CLIFeeArgs, waitForStatus: TxStatus, json: boolean, verbose: boolean, debugLogger: Logger, log: LogFn): Promise<{
|
|
9
10
|
alias: string | undefined;
|
|
10
11
|
address: AztecAddress;
|
|
11
12
|
secretKey: Fr;
|
|
12
13
|
salt: Fr;
|
|
13
14
|
}>;
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NyZWF0ZV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUdqRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBK0IsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHekUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyx3QkFBc0IsYUFBYSxDQUNqQyxNQUFNLEVBQUUsU0FBUyxFQUNqQixTQUFTLEVBQUUsU0FBUyxFQUNwQixXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFDekIsSUFBSSxFQUFFLEVBQUUsR0FBRyxTQUFTLEVBQ3BCLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDekIsUUFBUSxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQ2xDLFlBQVksRUFBRSxPQUFPLEVBQ3JCLGtCQUFrQixFQUFFLE9BQU8sRUFDM0IsWUFBWSxFQUFFLE9BQU8sRUFDckIsYUFBYSxFQUFFLE9BQU8sRUFDdEIsSUFBSSxFQUFFLE9BQU8sRUFDYixPQUFPLEVBQUUsVUFBVSxFQUNuQixhQUFhLEVBQUUsUUFBUSxFQUN2QixJQUFJLEVBQUUsT0FBTyxFQUNiLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLEdBQUcsRUFBRSxLQUFLOzs7OztHQWdJWCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_account.d.ts","sourceRoot":"","sources":["../../src/cmds/create_account.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create_account.d.ts","sourceRoot":"","sources":["../../src/cmds/create_account.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAA+B,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGzE,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,IAAI,EAAE,EAAE,GAAG,SAAS,EACpB,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,aAAa,EAAE,QAAQ,EACvB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK;;;;;GAgIX"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
2
|
+
import { NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
3
|
+
import { waitForTx } from '@aztec/aztec.js/node';
|
|
2
4
|
import { prettyPrintJSON } from '@aztec/cli/cli-utils';
|
|
3
5
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
6
|
import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
|
|
5
7
|
import { printProfileResult } from '../utils/profiling.js';
|
|
6
|
-
export async function createAccount(wallet, aztecNode, accountType, secretKey, publicKey, alias, deployer, registerOnly, skipInitialization, publicDeploy, registerClass, wait, feeOpts, json, verbose, debugLogger, log) {
|
|
8
|
+
export async function createAccount(wallet, aztecNode, accountType, secretKey, salt, publicKey, alias, deployer, registerOnly, skipInitialization, publicDeploy, registerClass, wait, feeOpts, waitForStatus, json, verbose, debugLogger, log) {
|
|
7
9
|
secretKey ??= Fr.random();
|
|
8
|
-
const account = await wallet.createOrRetrieveAccount(undefined /* address, we don't have it yet */ , secretKey, accountType,
|
|
9
|
-
const
|
|
10
|
+
const account = await wallet.createOrRetrieveAccount(undefined /* address, we don't have it yet */ , secretKey, accountType, salt, publicKey);
|
|
11
|
+
const instanceSalt = account.getInstance().salt;
|
|
10
12
|
const { address, publicKeys, partialAddress } = await account.getCompleteAddress();
|
|
11
13
|
const out = {};
|
|
12
14
|
if (json) {
|
|
@@ -16,7 +18,7 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
|
|
|
16
18
|
out.secretKey = secretKey;
|
|
17
19
|
}
|
|
18
20
|
out.partialAddress = partialAddress;
|
|
19
|
-
out.salt =
|
|
21
|
+
out.salt = instanceSalt;
|
|
20
22
|
out.initHash = account.getInstance().initializationHash;
|
|
21
23
|
} else {
|
|
22
24
|
log(`\nNew account:\n`);
|
|
@@ -26,15 +28,15 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
|
|
|
26
28
|
log(`Secret key: ${secretKey.toString()}`);
|
|
27
29
|
}
|
|
28
30
|
log(`Partial address: ${partialAddress.toString()}`);
|
|
29
|
-
log(`Salt: ${
|
|
31
|
+
log(`Salt: ${instanceSalt.toString()}`);
|
|
30
32
|
log(`Init hash: ${account.getInstance().initializationHash.toString()}`);
|
|
31
33
|
}
|
|
32
|
-
let
|
|
34
|
+
let txHash;
|
|
33
35
|
let txReceipt;
|
|
34
36
|
if (!registerOnly) {
|
|
35
37
|
const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(aztecNode, wallet, address);
|
|
36
38
|
const delegatedDeployment = deployer && !account.address.equals(deployer);
|
|
37
|
-
const from = delegatedDeployment ? deployer :
|
|
39
|
+
const from = delegatedDeployment ? deployer : NO_FROM;
|
|
38
40
|
const deployAccountOpts = {
|
|
39
41
|
skipClassPublication: !registerClass,
|
|
40
42
|
skipInstancePublication: !publicDeploy,
|
|
@@ -45,14 +47,18 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
|
|
|
45
47
|
gasSettings
|
|
46
48
|
}
|
|
47
49
|
};
|
|
50
|
+
const localStart = performance.now();
|
|
48
51
|
const deployMethod = await account.getDeployMethod();
|
|
49
|
-
const
|
|
52
|
+
const sim = await deployMethod.simulate({
|
|
50
53
|
...deployAccountOpts,
|
|
51
54
|
fee: {
|
|
52
55
|
...deployAccountOpts.fee,
|
|
53
56
|
estimateGas: true
|
|
54
57
|
}
|
|
55
58
|
});
|
|
59
|
+
// estimateGas: true guarantees these fields are present
|
|
60
|
+
const estimatedGas = sim.estimatedGas;
|
|
61
|
+
const stats = sim.stats;
|
|
56
62
|
if (feeOpts.estimateOnly) {
|
|
57
63
|
if (json) {
|
|
58
64
|
out.fee = {
|
|
@@ -67,38 +73,49 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
|
|
|
67
73
|
};
|
|
68
74
|
}
|
|
69
75
|
} else {
|
|
70
|
-
|
|
76
|
+
if (verbose) {
|
|
77
|
+
printProfileResult(stats, log);
|
|
78
|
+
}
|
|
79
|
+
if (!json) {
|
|
80
|
+
log(`\nWaiting for account contract deployment...`);
|
|
81
|
+
}
|
|
82
|
+
const sendOpts = {
|
|
71
83
|
...deployAccountOpts,
|
|
72
84
|
fee: deployAccountOpts.fee ? {
|
|
73
85
|
...deployAccountOpts.fee,
|
|
74
86
|
gasSettings: estimatedGas
|
|
75
87
|
} : undefined
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
out.txHash = txHash;
|
|
88
|
+
};
|
|
89
|
+
({ txHash } = await deployMethod.send({
|
|
90
|
+
...sendOpts,
|
|
91
|
+
wait: NO_WAIT
|
|
92
|
+
}));
|
|
93
|
+
const localTimeMs = performance.now() - localStart;
|
|
83
94
|
if (wait) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
timeout: DEFAULT_TX_TIMEOUT_S
|
|
95
|
+
const nodeStart = performance.now();
|
|
96
|
+
txReceipt = await waitForTx(aztecNode, txHash, {
|
|
97
|
+
timeout: DEFAULT_TX_TIMEOUT_S,
|
|
98
|
+
waitForStatus
|
|
89
99
|
});
|
|
100
|
+
const nodeTimeMs = performance.now() - nodeStart;
|
|
90
101
|
out.txReceipt = {
|
|
91
102
|
status: txReceipt.status,
|
|
92
103
|
transactionFee: txReceipt.transactionFee
|
|
93
104
|
};
|
|
105
|
+
if (!json) {
|
|
106
|
+
log(` Local processing time: ${(localTimeMs / 1000).toFixed(1)}s`);
|
|
107
|
+
log(` Node inclusion time: ${(nodeTimeMs / 1000).toFixed(1)}s`);
|
|
108
|
+
}
|
|
94
109
|
}
|
|
110
|
+
debugLogger.debug(`Account contract tx sent with hash ${txHash.toString()}`);
|
|
111
|
+
out.txHash = txHash;
|
|
95
112
|
}
|
|
96
113
|
}
|
|
97
114
|
if (json) {
|
|
98
115
|
log(prettyPrintJSON(out));
|
|
99
116
|
} else {
|
|
100
|
-
if (
|
|
101
|
-
log(`Deploy tx hash: ${
|
|
117
|
+
if (txHash) {
|
|
118
|
+
log(`Deploy tx hash: ${txHash.toString()}`);
|
|
102
119
|
}
|
|
103
120
|
if (txReceipt) {
|
|
104
121
|
log(`Deploy tx fee: ${txReceipt.transactionFee}`);
|
|
@@ -108,6 +125,6 @@ export async function createAccount(wallet, aztecNode, accountType, secretKey, p
|
|
|
108
125
|
alias,
|
|
109
126
|
address,
|
|
110
127
|
secretKey,
|
|
111
|
-
salt
|
|
128
|
+
salt: instanceSalt
|
|
112
129
|
};
|
|
113
130
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
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
|
-
export declare function createAuthwit(wallet: CLIWallet, from: AztecAddress, functionName: string, caller: AztecAddress, functionArgsIn: any[], contractArtifactPath: string, contractAddress: AztecAddress, log: LogFn): Promise<import("
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2F1dGh3aXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NyZWF0ZV9hdXRod2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzlELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixhQUFhLENBQ2pDLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLElBQUksRUFBRSxZQUFZLEVBQ2xCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFDckIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixlQUFlLEVBQUUsWUFBWSxFQUM3QixHQUFHLEVBQUUsS0FBSyw2REF1QlgifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_authwit.d.ts","sourceRoot":"","sources":["../../src/cmds/create_authwit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,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":"create_authwit.d.ts","sourceRoot":"","sources":["../../src/cmds/create_authwit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,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,6DAuBX"}
|
package/dest/cmds/deploy.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
1
|
+
import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
2
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
3
|
-
import type
|
|
3
|
+
import { type AztecNode } from '@aztec/aztec.js/node';
|
|
4
4
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
5
5
|
import { PublicKeys } from '@aztec/stdlib/keys';
|
|
6
|
+
import type { TxStatus } from '@aztec/stdlib/tx';
|
|
6
7
|
import { CLIFeeArgs } from '../utils/options/fees.js';
|
|
7
8
|
import type { CLIWallet } from '../utils/wallet.js';
|
|
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
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
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, waitForStatus: TxStatus, verbose: boolean, timeout: number | undefined, debugLogger: Logger, log: LogFn, universal?: boolean): Promise<AztecAddress>;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY21kcy9kZXBsb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixNQUFNLENBQzFCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLElBQUksRUFBRSxTQUFTLEVBQ2YsUUFBUSxFQUFFLFlBQVksRUFDdEIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsSUFBSSxFQUFFLE9BQU8sRUFDYixVQUFVLEVBQUUsVUFBVSxHQUFHLFNBQVMsRUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUNkLElBQUksRUFBRSxFQUFFLEdBQUcsU0FBUyxFQUNwQixXQUFXLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDL0IsdUJBQXVCLEVBQUUsT0FBTyxFQUNoQyxvQkFBb0IsRUFBRSxPQUFPLEVBQzdCLGtCQUFrQixFQUFFLE9BQU8sR0FBRyxTQUFTLEVBQ3ZDLElBQUksRUFBRSxPQUFPLEVBQ2IsT0FBTyxFQUFFLFVBQVUsRUFDbkIsYUFBYSxFQUFFLFFBQVEsRUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsT0FBTyxvQkFBK0IsRUFDdEMsV0FBVyxFQUFFLE1BQU0sRUFDbkIsR0FBRyxFQUFFLEtBQUssRUFDVixTQUFTLENBQUMsRUFBRSxPQUFPLHlCQXNIcEIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,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,aAAa,EAAE,QAAQ,EACvB,OAAO,EAAE,OAAO,EAChB,OAAO,oBAA+B,EACtC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,EACV,SAAS,CAAC,EAAE,OAAO,yBAsHpB"}
|
package/dest/cmds/deploy.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
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';
|
|
5
|
+
import { waitForTx } from '@aztec/aztec.js/node';
|
|
4
6
|
import { encodeArgs, getContractArtifact, prettyPrintJSON } from '@aztec/cli/utils';
|
|
5
7
|
import { getAllFunctionAbis, getInitializer } from '@aztec/stdlib/abi';
|
|
6
8
|
import { PublicKeys } from '@aztec/stdlib/keys';
|
|
7
9
|
import { DEFAULT_TX_TIMEOUT_S } from '../utils/cli_wallet_and_node_wrapper.js';
|
|
8
10
|
import { printProfileResult } from '../utils/profiling.js';
|
|
9
|
-
export async function deploy(wallet, node, deployer, artifactPath, json, publicKeys, rawArgs, salt, initializer, skipInstancePublication, skipClassPublication, skipInitialization, wait, feeOpts, verbose, timeout = DEFAULT_TX_TIMEOUT_S, debugLogger, log) {
|
|
11
|
+
export async function deploy(wallet, node, deployer, artifactPath, json, publicKeys, rawArgs, salt, initializer, skipInstancePublication, skipClassPublication, skipInitialization, wait, feeOpts, waitForStatus, verbose, timeout = DEFAULT_TX_TIMEOUT_S, debugLogger, log, universal) {
|
|
10
12
|
const out = {};
|
|
11
13
|
salt ??= Fr.random();
|
|
12
14
|
const contractArtifact = await getContractArtifact(artifactPath, log);
|
|
13
15
|
const hasInitializer = getAllFunctionAbis(contractArtifact).some((fn)=>fn.isInitializer);
|
|
14
16
|
const constructorArtifact = hasInitializer ? getInitializer(contractArtifact, initializer) : undefined;
|
|
15
17
|
// TODO(#12081): Add contractArtifact.noirVersion and check here (via Noir.lock)?
|
|
16
|
-
const contractDeployer = new ContractDeployer(contractArtifact, wallet,
|
|
18
|
+
const contractDeployer = new ContractDeployer(contractArtifact, wallet, initializer);
|
|
17
19
|
let args = [];
|
|
18
20
|
if (rawArgs.length > 0) {
|
|
19
21
|
if (!constructorArtifact) {
|
|
@@ -23,27 +25,35 @@ export async function deploy(wallet, node, deployer, artifactPath, json, publicK
|
|
|
23
25
|
args = encodeArgs(rawArgs, constructorArtifact.parameters);
|
|
24
26
|
debugLogger.debug(`Encoded arguments: ${args.join(', ')}`);
|
|
25
27
|
}
|
|
26
|
-
const
|
|
28
|
+
const deployInteraction = contractDeployer.deploy(args, {
|
|
29
|
+
salt,
|
|
30
|
+
publicKeys: publicKeys ?? PublicKeys.default(),
|
|
31
|
+
...universal ? {
|
|
32
|
+
universalDeploy: true
|
|
33
|
+
} : {}
|
|
34
|
+
});
|
|
27
35
|
const { paymentMethod, gasSettings } = await feeOpts.toUserFeeOptions(node, wallet, deployer);
|
|
28
36
|
const deployOpts = {
|
|
29
37
|
fee: {
|
|
30
38
|
gasSettings,
|
|
31
39
|
paymentMethod
|
|
32
40
|
},
|
|
33
|
-
from: deployer ??
|
|
34
|
-
contractAddressSalt: salt,
|
|
35
|
-
universalDeploy: !deployer,
|
|
41
|
+
from: deployer ?? NO_FROM,
|
|
36
42
|
skipClassPublication,
|
|
37
43
|
skipInitialization,
|
|
38
44
|
skipInstancePublication
|
|
39
45
|
};
|
|
40
|
-
const
|
|
46
|
+
const localStart = performance.now();
|
|
47
|
+
const sim = await deployInteraction.simulate({
|
|
41
48
|
...deployOpts,
|
|
42
49
|
fee: {
|
|
43
50
|
...deployOpts.fee,
|
|
44
51
|
estimateGas: true
|
|
45
52
|
}
|
|
46
53
|
});
|
|
54
|
+
// estimateGas: true guarantees these fields are present
|
|
55
|
+
const estimatedGas = sim.estimatedGas;
|
|
56
|
+
const stats = sim.stats;
|
|
47
57
|
if (feeOpts.estimateOnly) {
|
|
48
58
|
if (json) {
|
|
49
59
|
out.fee = {
|
|
@@ -58,43 +68,65 @@ export async function deploy(wallet, node, deployer, artifactPath, json, publicK
|
|
|
58
68
|
};
|
|
59
69
|
}
|
|
60
70
|
} else {
|
|
61
|
-
const tx = deploy1.send(deployOpts);
|
|
62
71
|
if (verbose) {
|
|
63
72
|
printProfileResult(stats, log);
|
|
64
73
|
}
|
|
65
|
-
const
|
|
74
|
+
const instance = await deployInteraction.getInstance();
|
|
75
|
+
const address = instance.address;
|
|
76
|
+
const partialAddress = await deployInteraction.getPartialAddress();
|
|
77
|
+
const { txHash } = await deployInteraction.send({
|
|
78
|
+
...deployOpts,
|
|
79
|
+
wait: NO_WAIT
|
|
80
|
+
});
|
|
81
|
+
const localTimeMs = performance.now() - localStart;
|
|
66
82
|
debugLogger.debug(`Deploy tx sent with hash ${txHash.toString()}`);
|
|
67
83
|
out.hash = txHash;
|
|
68
|
-
const { address, partialAddress } = deploy1;
|
|
69
|
-
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
84
|
if (wait) {
|
|
86
|
-
const
|
|
87
|
-
|
|
85
|
+
const nodeStart = performance.now();
|
|
86
|
+
const receipt = await waitForTx(node, txHash, {
|
|
87
|
+
timeout,
|
|
88
|
+
waitForStatus
|
|
88
89
|
});
|
|
90
|
+
const nodeTimeMs = performance.now() - nodeStart;
|
|
91
|
+
if (!json) {
|
|
92
|
+
log(`Contract deployed at ${address.toString()}`);
|
|
93
|
+
log(`Contract partial address ${partialAddress.toString()}`);
|
|
94
|
+
log(`Contract init hash ${instance.initializationHash.toString()}`);
|
|
95
|
+
log(`Deployment tx hash: ${txHash.toString()}`);
|
|
96
|
+
log(`Deployment salt: ${salt.toString()}`);
|
|
97
|
+
log(`Deployer: ${instance.deployer.toString()}`);
|
|
98
|
+
log(`Transaction fee: ${receipt.transactionFee?.toString()}`);
|
|
99
|
+
log(` Local processing time: ${(localTimeMs / 1000).toFixed(1)}s`);
|
|
100
|
+
log(` Node inclusion time: ${(nodeTimeMs / 1000).toFixed(1)}s`);
|
|
101
|
+
} else {
|
|
102
|
+
out.contract = {
|
|
103
|
+
address: address.toString(),
|
|
104
|
+
partialAddress: partialAddress.toString(),
|
|
105
|
+
initializationHash: instance.initializationHash.toString(),
|
|
106
|
+
salt: salt.toString(),
|
|
107
|
+
transactionFee: receipt.transactionFee?.toString()
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
} else {
|
|
89
111
|
if (!json) {
|
|
90
|
-
log(`
|
|
112
|
+
log(`Contract deployed at ${address.toString()}`);
|
|
113
|
+
log(`Contract partial address ${partialAddress.toString()}`);
|
|
114
|
+
log(`Contract init hash ${instance.initializationHash.toString()}`);
|
|
115
|
+
log(`Deployment tx hash: ${txHash.toString()}`);
|
|
116
|
+
log(`Deployment salt: ${salt.toString()}`);
|
|
117
|
+
log(`Deployer: ${instance.deployer.toString()}`);
|
|
91
118
|
} else {
|
|
92
|
-
out.contract
|
|
119
|
+
out.contract = {
|
|
120
|
+
address: address.toString(),
|
|
121
|
+
partialAddress: partialAddress.toString(),
|
|
122
|
+
initializationHash: instance.initializationHash.toString(),
|
|
123
|
+
salt: salt.toString()
|
|
124
|
+
};
|
|
93
125
|
}
|
|
94
126
|
}
|
|
95
127
|
}
|
|
96
128
|
if (json) {
|
|
97
129
|
log(prettyPrintJSON(out));
|
|
98
130
|
}
|
|
99
|
-
return
|
|
131
|
+
return await deployInteraction.getAddress();
|
|
100
132
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import type
|
|
2
|
+
import { type AztecNode } from '@aztec/aztec.js/node';
|
|
3
3
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
4
|
+
import type { TxStatus } from '@aztec/stdlib/tx';
|
|
4
5
|
import type { CLIFeeArgs } from '../utils/options/fees.js';
|
|
5
6
|
import type { CLIWallet } from '../utils/wallet.js';
|
|
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=data:application/json;base64,
|
|
7
|
+
export declare function deployAccount(wallet: CLIWallet, aztecNode: AztecNode, address: AztecAddress, wait: boolean, deployer: AztecAddress | undefined, registerClass: boolean, publicDeploy: boolean, skipInitialization: boolean, feeOpts: CLIFeeArgs, waitForStatus: TxStatus, json: boolean, verbose: boolean, debugLogger: Logger, log: LogFn): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2RlcGxveV9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3BFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixhQUFhLENBQ2pDLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLElBQUksRUFBRSxPQUFPLEVBQ2IsUUFBUSxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQ2xDLGFBQWEsRUFBRSxPQUFPLEVBQ3RCLFlBQVksRUFBRSxPQUFPLEVBQ3JCLGtCQUFrQixFQUFFLE9BQU8sRUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFDbkIsYUFBYSxFQUFFLFFBQVEsRUFDdkIsSUFBSSxFQUFFLE9BQU8sRUFDYixPQUFPLEVBQUUsT0FBTyxFQUNoQixXQUFXLEVBQUUsTUFBTSxFQUNuQixHQUFHLEVBQUUsS0FBSyxpQkErR1gifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_account.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy_account.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy_account.d.ts","sourceRoot":"","sources":["../../src/cmds/deploy_account.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sBAAsB,CAAC;AAGjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAqB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGpE,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,aAAa,EAAE,QAAQ,EACvB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBA+GX"}
|