@aztec/aztec 0.0.1-commit.ec5f612 → 0.0.1-commit.ef17749e1
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 +2 -2
- package/dest/cli/aztec_start_action.d.ts +1 -1
- package/dest/cli/aztec_start_action.d.ts.map +1 -1
- package/dest/cli/aztec_start_action.js +5 -3
- package/dest/cli/aztec_start_options.d.ts +1 -1
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +2 -3
- package/dest/cli/cli.js +3 -3
- package/dest/cli/cmds/standby.d.ts +27 -0
- package/dest/cli/cmds/standby.d.ts.map +1 -0
- package/dest/cli/cmds/standby.js +78 -0
- package/dest/cli/cmds/start_archiver.d.ts +2 -2
- package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
- package/dest/cli/cmds/start_archiver.js +1 -1
- package/dest/cli/cmds/start_node.d.ts +3 -2
- package/dest/cli/cmds/start_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_node.js +15 -17
- package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
- package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_broker.js +6 -6
- package/dest/cli/util.d.ts +3 -5
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +37 -78
- package/dest/examples/token.js +4 -4
- package/dest/local-network/banana_fpc.js +1 -1
- package/dest/local-network/local-network.d.ts +1 -1
- package/dest/local-network/local-network.d.ts.map +1 -1
- package/dest/local-network/local-network.js +18 -5
- package/dest/testing/index.d.ts +2 -1
- package/dest/testing/index.d.ts.map +1 -1
- package/dest/testing/index.js +1 -0
- package/dest/testing/token_allowed_setup.d.ts +7 -0
- package/dest/testing/token_allowed_setup.d.ts.map +1 -0
- package/dest/testing/token_allowed_setup.js +20 -0
- package/package.json +34 -34
- package/scripts/add_crate.sh +102 -0
- package/scripts/init.sh +15 -21
- package/scripts/new.sh +45 -22
- package/scripts/setup_workspace.sh +10 -66
- package/src/bin/index.ts +2 -2
- package/src/cli/aztec_start_action.ts +5 -3
- package/src/cli/aztec_start_options.ts +2 -3
- package/src/cli/cli.ts +3 -3
- package/src/cli/cmds/standby.ts +111 -0
- package/src/cli/cmds/start_archiver.ts +1 -1
- package/src/cli/cmds/start_node.ts +25 -24
- package/src/cli/cmds/start_prover_broker.ts +7 -14
- package/src/cli/util.ts +41 -74
- package/src/examples/token.ts +6 -4
- package/src/local-network/banana_fpc.ts +1 -1
- package/src/local-network/local-network.ts +13 -3
- package/src/testing/index.ts +1 -0
- package/src/testing/token_allowed_setup.ts +19 -0
- package/dest/cli/release_version.d.ts +0 -2
- package/dest/cli/release_version.d.ts.map +0 -1
- package/dest/cli/release_version.js +0 -14
- package/src/cli/release_version.ts +0 -21
package/dest/examples/token.js
CHANGED
|
@@ -21,7 +21,7 @@ const TRANSFER_AMOUNT = 33n;
|
|
|
21
21
|
const bob = bobInitialAccountData.address;
|
|
22
22
|
logger.info(`Fetched Alice and Bob accounts: ${alice.toString()}, ${bob.toString()}`);
|
|
23
23
|
logger.info('Deploying Token...');
|
|
24
|
-
const token = await TokenContract.deploy(wallet, alice, 'TokenName', 'TokenSymbol', 18).send({
|
|
24
|
+
const { contract: token } = await TokenContract.deploy(wallet, alice, 'TokenName', 'TokenSymbol', 18).send({
|
|
25
25
|
from: alice
|
|
26
26
|
});
|
|
27
27
|
logger.info('Token deployed');
|
|
@@ -31,7 +31,7 @@ const TRANSFER_AMOUNT = 33n;
|
|
|
31
31
|
from: alice
|
|
32
32
|
});
|
|
33
33
|
logger.info(`${ALICE_MINT_BALANCE} tokens were successfully minted by Alice and transferred to private`);
|
|
34
|
-
const balanceAfterMint = await token.methods.balance_of_private(alice).simulate({
|
|
34
|
+
const { result: balanceAfterMint } = await token.methods.balance_of_private(alice).simulate({
|
|
35
35
|
from: alice
|
|
36
36
|
});
|
|
37
37
|
logger.info(`Tokens successfully minted. New Alice's balance: ${balanceAfterMint}`);
|
|
@@ -41,11 +41,11 @@ const TRANSFER_AMOUNT = 33n;
|
|
|
41
41
|
from: alice
|
|
42
42
|
});
|
|
43
43
|
// Check the new balances
|
|
44
|
-
const aliceBalance = await token.methods.balance_of_private(alice).simulate({
|
|
44
|
+
const { result: aliceBalance } = await token.methods.balance_of_private(alice).simulate({
|
|
45
45
|
from: alice
|
|
46
46
|
});
|
|
47
47
|
logger.info(`Alice's balance ${aliceBalance}`);
|
|
48
|
-
const bobBalance = await token.methods.balance_of_private(bob).simulate({
|
|
48
|
+
const { result: bobBalance } = await token.methods.balance_of_private(bob).simulate({
|
|
49
49
|
from: bob
|
|
50
50
|
});
|
|
51
51
|
logger.info(`Bob's balance ${bobBalance}`);
|
|
@@ -46,7 +46,7 @@ export async function getBananaFPCAddress(initialAccounts) {
|
|
|
46
46
|
export async function setupBananaFPC(initialAccounts, wallet, log) {
|
|
47
47
|
const bananaCoinAddress = await getBananaCoinAddress(initialAccounts);
|
|
48
48
|
const admin = getBananaAdmin(initialAccounts);
|
|
49
|
-
const [bananaCoin, fpc] = await Promise.all([
|
|
49
|
+
const [{ contract: bananaCoin }, { contract: fpc }] = await Promise.all([
|
|
50
50
|
TokenContract.deploy(wallet, admin, bananaCoinArgs.name, bananaCoinArgs.symbol, bananaCoinArgs.decimal).send({
|
|
51
51
|
from: admin,
|
|
52
52
|
contractAddressSalt: BANANA_COIN_SALT,
|
|
@@ -70,4 +70,4 @@ export declare function createAztecNode(config?: Partial<AztecNodeConfig>, deps?
|
|
|
70
70
|
}, options?: {
|
|
71
71
|
prefilledPublicData?: PublicDataTreeLeaf[];
|
|
72
72
|
}): Promise<AztecNodeService>;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtbmV0d29yay5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsLW5ldHdvcmsvbG9jYWwtbmV0d29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFvQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsS0FBSyxtQkFBbUIsRUFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQVN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUt6RSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUdyQixNQUFNLHlCQUF5QixDQUFDO0FBS2pDLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBMkQsTUFBTSxNQUFNLENBQUM7QUFnQnpGOzs7O0dBSUc7QUFDSCx3QkFBc0IsbUJBQW1CLENBQ3ZDLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLFVBQVUsRUFBRSxHQUFHLEVBQ2YsSUFBSSxHQUFFO0lBQ0osa0JBQWtCLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDeEIsNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JQO0FBRUQsOEJBQThCO0FBQzlCLE1BQU0sTUFBTSxrQkFBa0IsR0FBRyxlQUFlLEdBQUc7SUFDakQsMERBQTBEO0lBQzFELFVBQVUsRUFBRSxNQUFNLENBQUM7SUFDbkIsNkRBQTZEO0lBQzdELFlBQVksRUFBRSxPQUFPLENBQUM7Q0FDdkIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCx3QkFBc0Isa0JBQWtCLENBQUMsTUFBTSx5Q0FBa0MsRUFBRSxPQUFPLEVBQUUsS0FBSzs7O0dBd0poRztBQUVEOzs7R0FHRztBQUNILHdCQUFzQixlQUFlLENBQ25DLE1BQU0sR0FBRSxPQUFPLENBQUMsZUFBZSxDQUFNLEVBQ3JDLElBQUksR0FBRTtJQUNKLFNBQVMsQ0FBQyxFQUFFLGVBQWUsQ0FBQztJQUM1QixVQUFVLENBQUMsRUFBRSxtQkFBbUIsQ0FBQztJQUNqQyxZQUFZLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDNUIsWUFBWSxDQUFDLEVBQUUsZ0JBQWdCLENBQUM7Q0FDNUIsRUFDTixPQUFPLEdBQUU7SUFBRSxtQkFBbUIsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUE7Q0FBTyw2QkFlN0QifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-network.d.ts","sourceRoot":"","sources":["../../src/local-network/local-network.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,2BAA2B,CAAC;AASvF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAoB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"local-network.d.ts","sourceRoot":"","sources":["../../src/local-network/local-network.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,2BAA2B,CAAC;AASvF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAoB,MAAM,yBAAyB,CAAC;AAKzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAE,KAAK,GAAG,EAA2D,MAAM,MAAM,CAAC;AAgBzF;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,GAAG,EACf,IAAI,GAAE;IACJ,kBAAkB,CAAC,EAAE,EAAE,CAAC;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAC;CAClC;;;;;;;;;;;;;;;;;;;;;;;GAoBP;AAED,8BAA8B;AAC9B,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IACjD,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,yCAAkC,EAAE,OAAO,EAAE,KAAK;;;GAwJhG;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,gBAAgB,CAAC;CAC5B,EACN,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAAO,6BAe7D"}
|
|
@@ -18,6 +18,7 @@ import { TestDateProvider } from '@aztec/foundation/timer';
|
|
|
18
18
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
19
19
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
20
20
|
import { SequencerState } from '@aztec/sequencer-client';
|
|
21
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
21
22
|
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
22
23
|
import { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
23
24
|
import { deployFundedSchnorrAccounts } from '@aztec/wallets/testing';
|
|
@@ -29,6 +30,7 @@ import { createAccountLogs } from '../cli/util.js';
|
|
|
29
30
|
import { DefaultMnemonic } from '../mnemonic.js';
|
|
30
31
|
import { AnvilTestWatcher } from '../testing/anvil_test_watcher.js';
|
|
31
32
|
import { EpochTestSettler } from '../testing/epoch_test_settler.js';
|
|
33
|
+
import { getTokenAllowedSetupFunctions } from '../testing/token_allowed_setup.js';
|
|
32
34
|
import { getBananaFPCAddress, setupBananaFPC } from './banana_fpc.js';
|
|
33
35
|
import { getSponsoredFPCAddress } from './sponsored_fpc.js';
|
|
34
36
|
const logger = createLogger('local-network');
|
|
@@ -67,9 +69,16 @@ const localAnvil = foundry;
|
|
|
67
69
|
if ((config.l1RpcUrls?.length || 0) > 1) {
|
|
68
70
|
logger.warn(`Multiple L1 RPC URLs provided. Local networks will only use the first one: ${l1RpcUrl}`);
|
|
69
71
|
}
|
|
72
|
+
// The local network deploys a banana FPC with Token contracts, so include Token entries
|
|
73
|
+
// in the setup allowlist so FPC-based fee payments work out of the box.
|
|
74
|
+
const tokenAllowList = await getTokenAllowedSetupFunctions();
|
|
70
75
|
const aztecNodeConfig = {
|
|
71
76
|
...getConfigEnvVars(),
|
|
72
|
-
...config
|
|
77
|
+
...config,
|
|
78
|
+
txPublicSetupAllowListExtend: [
|
|
79
|
+
...tokenAllowList,
|
|
80
|
+
...config.txPublicSetupAllowListExtend ?? []
|
|
81
|
+
]
|
|
73
82
|
};
|
|
74
83
|
const hdAccount = mnemonicToAccount(config.l1Mnemonic || DefaultMnemonic);
|
|
75
84
|
if (aztecNodeConfig.sequencerPublisherPrivateKeys == undefined || !aztecNodeConfig.sequencerPublisherPrivateKeys.length || aztecNodeConfig.sequencerPublisherPrivateKeys[0].getValue() === NULL_KEY) {
|
|
@@ -98,11 +107,15 @@ const localAnvil = foundry;
|
|
|
98
107
|
})();
|
|
99
108
|
const bananaFPC = await getBananaFPCAddress(initialAccounts);
|
|
100
109
|
const sponsoredFPC = await getSponsoredFPCAddress();
|
|
101
|
-
const
|
|
110
|
+
const prefundAddresses = (aztecNodeConfig.prefundAddresses ?? []).map((a)=>AztecAddress.fromString(a));
|
|
111
|
+
const fundedAddresses = [
|
|
102
112
|
...initialAccounts.map((a)=>a.address),
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
...initialAccounts.length ? [
|
|
114
|
+
bananaFPC,
|
|
115
|
+
sponsoredFPC
|
|
116
|
+
] : [],
|
|
117
|
+
...prefundAddresses
|
|
118
|
+
];
|
|
106
119
|
const { genesisArchiveRoot, prefilledPublicData, fundingNeeded } = await getGenesisValues(fundedAddresses);
|
|
107
120
|
const dateProvider = new TestDateProvider();
|
|
108
121
|
let cheatcodes;
|
package/dest/testing/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export { AnvilTestWatcher } from './anvil_test_watcher.js';
|
|
|
2
2
|
export { EthCheatCodes, RollupCheatCodes } from '@aztec/ethereum/test';
|
|
3
3
|
export { CheatCodes } from './cheat_codes.js';
|
|
4
4
|
export { EpochTestSettler } from './epoch_test_settler.js';
|
|
5
|
-
|
|
5
|
+
export { getTokenAllowedSetupFunctions } from './token_allowed_setup.js';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEJBQTBCLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dest/testing/index.js
CHANGED
|
@@ -2,3 +2,4 @@ export { AnvilTestWatcher } from './anvil_test_watcher.js';
|
|
|
2
2
|
export { EthCheatCodes, RollupCheatCodes } from '@aztec/ethereum/test';
|
|
3
3
|
export { CheatCodes } from './cheat_codes.js';
|
|
4
4
|
export { EpochTestSettler } from './epoch_test_settler.js';
|
|
5
|
+
export { getTokenAllowedSetupFunctions } from './token_allowed_setup.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AllowedElement } from '@aztec/stdlib/interfaces/server';
|
|
2
|
+
/**
|
|
3
|
+
* Returns Token-specific allowlist entries needed for FPC-based fee payments.
|
|
4
|
+
* These are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getTokenAllowedSetupFunctions(): Promise<AllowedElement[]>;
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fYWxsb3dlZF9zZXR1cC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvdG9rZW5fYWxsb3dlZF9zZXR1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV0RTs7O0dBR0c7QUFDSCx3QkFBc0IsNkJBQTZCLElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBUy9FIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token_allowed_setup.d.ts","sourceRoot":"","sources":["../../src/testing/token_allowed_setup.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE;;;GAGG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAS/E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TokenContractArtifact } from '@aztec/noir-contracts.js/Token';
|
|
2
|
+
import { buildAllowedElement } from '@aztec/p2p/msg_validators';
|
|
3
|
+
import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
|
|
4
|
+
/**
|
|
5
|
+
* Returns Token-specific allowlist entries needed for FPC-based fee payments.
|
|
6
|
+
* These are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
|
|
7
|
+
*/ export async function getTokenAllowedSetupFunctions() {
|
|
8
|
+
const tokenClassId = (await getContractClassFromArtifact(TokenContractArtifact)).id;
|
|
9
|
+
const target = {
|
|
10
|
+
classId: tokenClassId
|
|
11
|
+
};
|
|
12
|
+
return Promise.all([
|
|
13
|
+
// Token: needed for private transfers via FPC (transfer_to_public enqueues this)
|
|
14
|
+
buildAllowedElement(TokenContractArtifact, target, '_increase_public_balance', {
|
|
15
|
+
onlySelf: true
|
|
16
|
+
}),
|
|
17
|
+
// Token: needed for public transfers via FPC (fee_entrypoint_public enqueues this)
|
|
18
|
+
buildAllowedElement(TokenContractArtifact, target, 'transfer_in_public')
|
|
19
|
+
]);
|
|
20
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/aztec",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.ef17749e1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -28,39 +28,39 @@
|
|
|
28
28
|
"../package.common.json"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aztec/accounts": "0.0.1-commit.
|
|
32
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
33
|
-
"@aztec/aztec-faucet": "0.0.1-commit.
|
|
34
|
-
"@aztec/aztec-node": "0.0.1-commit.
|
|
35
|
-
"@aztec/aztec.js": "0.0.1-commit.
|
|
36
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
37
|
-
"@aztec/bb.js": "0.0.1-commit.
|
|
38
|
-
"@aztec/blob-client": "0.0.1-commit.
|
|
39
|
-
"@aztec/bot": "0.0.1-commit.
|
|
40
|
-
"@aztec/builder": "0.0.1-commit.
|
|
41
|
-
"@aztec/cli": "0.0.1-commit.
|
|
42
|
-
"@aztec/constants": "0.0.1-commit.
|
|
43
|
-
"@aztec/entrypoints": "0.0.1-commit.
|
|
44
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
45
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
46
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
47
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
48
|
-
"@aztec/node-lib": "0.0.1-commit.
|
|
49
|
-
"@aztec/noir-contracts.js": "0.0.1-commit.
|
|
50
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
51
|
-
"@aztec/p2p": "0.0.1-commit.
|
|
52
|
-
"@aztec/p2p-bootstrap": "0.0.1-commit.
|
|
53
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
54
|
-
"@aztec/prover-client": "0.0.1-commit.
|
|
55
|
-
"@aztec/prover-node": "0.0.1-commit.
|
|
56
|
-
"@aztec/pxe": "0.0.1-commit.
|
|
57
|
-
"@aztec/sequencer-client": "0.0.1-commit.
|
|
58
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
59
|
-
"@aztec/telemetry-client": "0.0.1-commit.
|
|
60
|
-
"@aztec/txe": "0.0.1-commit.
|
|
61
|
-
"@aztec/validator-ha-signer": "0.0.1-commit.
|
|
62
|
-
"@aztec/wallets": "0.0.1-commit.
|
|
63
|
-
"@aztec/world-state": "0.0.1-commit.
|
|
31
|
+
"@aztec/accounts": "0.0.1-commit.ef17749e1",
|
|
32
|
+
"@aztec/archiver": "0.0.1-commit.ef17749e1",
|
|
33
|
+
"@aztec/aztec-faucet": "0.0.1-commit.ef17749e1",
|
|
34
|
+
"@aztec/aztec-node": "0.0.1-commit.ef17749e1",
|
|
35
|
+
"@aztec/aztec.js": "0.0.1-commit.ef17749e1",
|
|
36
|
+
"@aztec/bb-prover": "0.0.1-commit.ef17749e1",
|
|
37
|
+
"@aztec/bb.js": "0.0.1-commit.ef17749e1",
|
|
38
|
+
"@aztec/blob-client": "0.0.1-commit.ef17749e1",
|
|
39
|
+
"@aztec/bot": "0.0.1-commit.ef17749e1",
|
|
40
|
+
"@aztec/builder": "0.0.1-commit.ef17749e1",
|
|
41
|
+
"@aztec/cli": "0.0.1-commit.ef17749e1",
|
|
42
|
+
"@aztec/constants": "0.0.1-commit.ef17749e1",
|
|
43
|
+
"@aztec/entrypoints": "0.0.1-commit.ef17749e1",
|
|
44
|
+
"@aztec/ethereum": "0.0.1-commit.ef17749e1",
|
|
45
|
+
"@aztec/foundation": "0.0.1-commit.ef17749e1",
|
|
46
|
+
"@aztec/kv-store": "0.0.1-commit.ef17749e1",
|
|
47
|
+
"@aztec/l1-artifacts": "0.0.1-commit.ef17749e1",
|
|
48
|
+
"@aztec/node-lib": "0.0.1-commit.ef17749e1",
|
|
49
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.ef17749e1",
|
|
50
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.ef17749e1",
|
|
51
|
+
"@aztec/p2p": "0.0.1-commit.ef17749e1",
|
|
52
|
+
"@aztec/p2p-bootstrap": "0.0.1-commit.ef17749e1",
|
|
53
|
+
"@aztec/protocol-contracts": "0.0.1-commit.ef17749e1",
|
|
54
|
+
"@aztec/prover-client": "0.0.1-commit.ef17749e1",
|
|
55
|
+
"@aztec/prover-node": "0.0.1-commit.ef17749e1",
|
|
56
|
+
"@aztec/pxe": "0.0.1-commit.ef17749e1",
|
|
57
|
+
"@aztec/sequencer-client": "0.0.1-commit.ef17749e1",
|
|
58
|
+
"@aztec/stdlib": "0.0.1-commit.ef17749e1",
|
|
59
|
+
"@aztec/telemetry-client": "0.0.1-commit.ef17749e1",
|
|
60
|
+
"@aztec/txe": "0.0.1-commit.ef17749e1",
|
|
61
|
+
"@aztec/validator-ha-signer": "0.0.1-commit.ef17749e1",
|
|
62
|
+
"@aztec/wallets": "0.0.1-commit.ef17749e1",
|
|
63
|
+
"@aztec/world-state": "0.0.1-commit.ef17749e1",
|
|
64
64
|
"@types/chalk": "^2.2.0",
|
|
65
65
|
"abitype": "^0.8.11",
|
|
66
66
|
"chalk": "^5.3.0",
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Creates a contract+test crate pair and adds them to an existing workspace.
|
|
5
|
+
# Usage: add_crate.sh <crate_name>
|
|
6
|
+
# Must be called from a workspace root that already has Nargo.toml with [workspace].
|
|
7
|
+
|
|
8
|
+
crate_name=$1
|
|
9
|
+
|
|
10
|
+
if [ -z "$crate_name" ]; then
|
|
11
|
+
echo "Error: crate name is required"
|
|
12
|
+
exit 1
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
if [[ "$crate_name" == *"/"* ]] || [[ "$crate_name" == *"\\"* ]]; then
|
|
16
|
+
echo "Error: crate name must not contain path separators"
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
contract_dir="${crate_name}_contract"
|
|
21
|
+
test_dir="${crate_name}_test"
|
|
22
|
+
|
|
23
|
+
if [ -d "$contract_dir" ]; then
|
|
24
|
+
echo "Error: directory '$contract_dir' already exists"
|
|
25
|
+
exit 1
|
|
26
|
+
fi
|
|
27
|
+
if [ -d "$test_dir" ]; then
|
|
28
|
+
echo "Error: directory '$test_dir' already exists"
|
|
29
|
+
exit 1
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
# Get the actual aztec version for the git tag.
|
|
33
|
+
AZTEC_VERSION=$(jq -r '.version' $(dirname $0)/../package.json)
|
|
34
|
+
|
|
35
|
+
# Create contract crate
|
|
36
|
+
mkdir -p "$contract_dir/src"
|
|
37
|
+
cat > "$contract_dir/Nargo.toml" << CEOF
|
|
38
|
+
[package]
|
|
39
|
+
name = "${crate_name}_contract"
|
|
40
|
+
type = "contract"
|
|
41
|
+
|
|
42
|
+
[dependencies]
|
|
43
|
+
aztec = { git="https://github.com/AztecProtocol/aztec-nr", tag="v${AZTEC_VERSION}", directory="aztec" }
|
|
44
|
+
CEOF
|
|
45
|
+
|
|
46
|
+
cat > "$contract_dir/src/main.nr" << 'EOF'
|
|
47
|
+
use aztec::macros::aztec;
|
|
48
|
+
|
|
49
|
+
#[aztec]
|
|
50
|
+
pub contract Main {
|
|
51
|
+
use aztec::macros::functions::{external, initializer};
|
|
52
|
+
|
|
53
|
+
#[initializer]
|
|
54
|
+
#[external("private")]
|
|
55
|
+
fn constructor() {}
|
|
56
|
+
}
|
|
57
|
+
EOF
|
|
58
|
+
|
|
59
|
+
# Create test crate
|
|
60
|
+
mkdir -p "$test_dir/src"
|
|
61
|
+
cat > "$test_dir/Nargo.toml" << TEOF
|
|
62
|
+
[package]
|
|
63
|
+
name = "${crate_name}_test"
|
|
64
|
+
type = "lib"
|
|
65
|
+
|
|
66
|
+
[dependencies]
|
|
67
|
+
aztec = { git="https://github.com/AztecProtocol/aztec-nr", tag="v${AZTEC_VERSION}", directory="aztec" }
|
|
68
|
+
${crate_name}_contract = { path = "../${contract_dir}" }
|
|
69
|
+
TEOF
|
|
70
|
+
|
|
71
|
+
cat > "$test_dir/src/lib.nr" << 'NOIR'
|
|
72
|
+
use aztec::test::helpers::test_environment::TestEnvironment;
|
|
73
|
+
use __CRATE_NAME___contract::Main;
|
|
74
|
+
|
|
75
|
+
#[test]
|
|
76
|
+
unconstrained fn test_constructor() {
|
|
77
|
+
let mut env = TestEnvironment::new();
|
|
78
|
+
let deployer = env.create_light_account();
|
|
79
|
+
|
|
80
|
+
// Deploy the contract with the default constructor:
|
|
81
|
+
let contract_address = env.deploy("@__CRATE_NAME___contract/Main").with_private_initializer(
|
|
82
|
+
deployer,
|
|
83
|
+
Main::interface().constructor(),
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
// Deploy without an initializer:
|
|
87
|
+
let contract_address = env.deploy("@__CRATE_NAME___contract/Main").without_initializer();
|
|
88
|
+
}
|
|
89
|
+
NOIR
|
|
90
|
+
|
|
91
|
+
sed -i "s/__CRATE_NAME__/${crate_name}/g" "$test_dir/src/lib.nr"
|
|
92
|
+
|
|
93
|
+
# Add members to workspace Nargo.toml
|
|
94
|
+
if grep -q 'members\s*=\s*\[\s*\]' Nargo.toml; then
|
|
95
|
+
# Empty array: members = []
|
|
96
|
+
sed -i "s|members\s*=\s*\[\s*\]|members = [\"${contract_dir}\", \"${test_dir}\"]|" Nargo.toml
|
|
97
|
+
else
|
|
98
|
+
# Non-empty array: add before closing ]
|
|
99
|
+
sed -i "s|\(members\s*=\s*\[.*\)\]|\1, \"${contract_dir}\", \"${test_dir}\"]|" Nargo.toml
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
echo "Created crates '${contract_dir}' and '${test_dir}'"
|
package/scripts/init.sh
CHANGED
|
@@ -3,43 +3,37 @@ set -euo pipefail
|
|
|
3
3
|
|
|
4
4
|
script_path=$(realpath $(dirname "$0"))
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
cat << 'EOF'
|
|
6
|
+
# Parse arguments
|
|
7
|
+
while [[ $# -gt 0 ]]; do
|
|
8
|
+
case $1 in
|
|
9
|
+
--help|-h)
|
|
10
|
+
cat << 'EOF'
|
|
12
11
|
Aztec Init - Create a new Aztec Noir project in the current directory
|
|
13
12
|
|
|
14
|
-
Usage: aztec init
|
|
13
|
+
Usage: aztec init
|
|
15
14
|
|
|
16
15
|
Options:
|
|
17
|
-
--name <NAME> Name of the package [default: current directory name]
|
|
18
16
|
-h, --help Print help
|
|
19
17
|
|
|
20
18
|
This command creates a new Aztec Noir project in the current directory with
|
|
21
19
|
a workspace containing a contract crate and a test crate, and automatically
|
|
22
20
|
adds the Aztec.nr dependency to both.
|
|
23
|
-
EOF
|
|
24
|
-
exit 0
|
|
25
|
-
fi
|
|
26
|
-
done
|
|
27
21
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
name_arg="$2"
|
|
33
|
-
shift 2
|
|
22
|
+
If a workspace already exists in the current directory, use
|
|
23
|
+
'aztec new <name>' instead to add another contract.
|
|
24
|
+
EOF
|
|
25
|
+
exit 0
|
|
34
26
|
;;
|
|
35
27
|
*)
|
|
36
|
-
|
|
28
|
+
echo "Error: unexpected argument '$1'"
|
|
29
|
+
echo "Usage: aztec init"
|
|
30
|
+
echo "Run 'aztec init --help' for more information"
|
|
31
|
+
exit 1
|
|
37
32
|
;;
|
|
38
33
|
esac
|
|
39
34
|
done
|
|
40
35
|
|
|
41
|
-
|
|
42
|
-
package_name="${name_arg:-$(basename $(pwd))}"
|
|
36
|
+
package_name="$(basename $(pwd))"
|
|
43
37
|
|
|
44
38
|
echo "Initializing Aztec contract project..."
|
|
45
39
|
$script_path/setup_workspace.sh "$package_name"
|
package/scripts/new.sh
CHANGED
|
@@ -3,58 +3,81 @@ set -euo pipefail
|
|
|
3
3
|
|
|
4
4
|
script_path=$(realpath $(dirname "$0"))
|
|
5
5
|
|
|
6
|
-
name_arg=""
|
|
7
6
|
project_path=""
|
|
8
7
|
|
|
9
8
|
while [[ $# -gt 0 ]]; do
|
|
10
9
|
case $1 in
|
|
11
10
|
--help|-h)
|
|
12
11
|
cat << 'EOF'
|
|
13
|
-
Aztec New - Create a new Aztec Noir project
|
|
12
|
+
Aztec New - Create a new Aztec Noir project or add a contract to an existing workspace
|
|
14
13
|
|
|
15
|
-
Usage: aztec new
|
|
14
|
+
Usage: aztec new <NAME>
|
|
16
15
|
|
|
17
16
|
Arguments:
|
|
18
|
-
<
|
|
17
|
+
<NAME> The name for the new contract (also used as the directory name when
|
|
18
|
+
creating a new workspace)
|
|
19
19
|
|
|
20
20
|
Options:
|
|
21
|
-
--name <NAME> Name of the package [default: package directory name]
|
|
22
21
|
-h, --help Print help
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
a
|
|
26
|
-
dependency to both.
|
|
23
|
+
When run outside an existing workspace:
|
|
24
|
+
Creates a new directory with a workspace containing a contract crate and a
|
|
25
|
+
test crate, and automatically adds the Aztec.nr dependency to both.
|
|
26
|
+
|
|
27
|
+
When run inside an existing workspace (Nargo.toml with [workspace] exists):
|
|
28
|
+
Adds a new contract crate and test crate to the existing workspace.
|
|
27
29
|
EOF
|
|
28
30
|
exit 0
|
|
29
31
|
;;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
-*)
|
|
33
|
+
echo "Error: unknown option '$1'"
|
|
34
|
+
echo "Usage: aztec new <NAME>"
|
|
35
|
+
echo "Run 'aztec new --help' for more information"
|
|
36
|
+
exit 1
|
|
33
37
|
;;
|
|
34
38
|
*)
|
|
39
|
+
if [ -n "$project_path" ]; then
|
|
40
|
+
echo "Error: unexpected argument '$1'"
|
|
41
|
+
echo "Usage: aztec new <NAME>"
|
|
42
|
+
echo "Run 'aztec new --help' for more information"
|
|
43
|
+
exit 1
|
|
44
|
+
fi
|
|
35
45
|
project_path=$1
|
|
36
46
|
shift
|
|
37
|
-
break
|
|
38
47
|
;;
|
|
39
48
|
esac
|
|
40
49
|
done
|
|
41
50
|
|
|
42
51
|
if [ -z "$project_path" ]; then
|
|
43
|
-
echo "Error:
|
|
44
|
-
echo "Usage: aztec new
|
|
52
|
+
echo "Error: NAME argument is required"
|
|
53
|
+
echo "Usage: aztec new <NAME>"
|
|
45
54
|
echo "Run 'aztec new --help' for more information"
|
|
46
55
|
exit 1
|
|
47
56
|
fi
|
|
48
57
|
|
|
49
|
-
|
|
50
|
-
|
|
58
|
+
package_name="$(basename $project_path)"
|
|
59
|
+
|
|
60
|
+
# Validate that the name contains only valid Noir identifier characters
|
|
61
|
+
if ! [[ "$package_name" =~ ^[a-zA-Z][a-zA-Z0-9_]*$ ]]; then
|
|
62
|
+
echo "Error: '$package_name' is not a valid contract name"
|
|
63
|
+
echo "Name must start with a letter and contain only letters, digits, and underscores"
|
|
51
64
|
exit 1
|
|
52
65
|
fi
|
|
53
66
|
|
|
54
|
-
#
|
|
55
|
-
|
|
67
|
+
# Check if we're inside an existing workspace
|
|
68
|
+
if [ -f "Nargo.toml" ] && grep -q '\[workspace\]' Nargo.toml; then
|
|
69
|
+
# Add crate pair to existing workspace
|
|
70
|
+
echo "Adding contract '$package_name' to existing workspace..."
|
|
71
|
+
$script_path/add_crate.sh "$package_name"
|
|
72
|
+
else
|
|
73
|
+
# Create new workspace
|
|
74
|
+
if [ -d "$project_path" ] && [ "$(ls -A $project_path 2>/dev/null)" ]; then
|
|
75
|
+
echo "Error: $project_path already exists and is not empty"
|
|
76
|
+
exit 1
|
|
77
|
+
fi
|
|
56
78
|
|
|
57
|
-
echo "Creating new Aztec contract project at $project_path..."
|
|
58
|
-
mkdir -p "$project_path"
|
|
59
|
-
cd "$project_path"
|
|
60
|
-
$script_path/setup_workspace.sh "$package_name"
|
|
79
|
+
echo "Creating new Aztec contract project at $project_path..."
|
|
80
|
+
mkdir -p "$project_path"
|
|
81
|
+
cd "$project_path"
|
|
82
|
+
$script_path/setup_workspace.sh "$package_name"
|
|
83
|
+
fi
|
|
@@ -6,6 +6,7 @@ set -euo pipefail
|
|
|
6
6
|
# Must be called from the workspace root directory.
|
|
7
7
|
|
|
8
8
|
package_name=$1
|
|
9
|
+
script_path=$(realpath $(dirname "$0"))
|
|
9
10
|
|
|
10
11
|
if [ -z "$package_name" ]; then
|
|
11
12
|
echo "Error: package name is required"
|
|
@@ -13,76 +14,19 @@ if [ -z "$package_name" ]; then
|
|
|
13
14
|
fi
|
|
14
15
|
|
|
15
16
|
if [ -f "Nargo.toml" ]; then
|
|
16
|
-
echo "Error: Nargo.toml already exists in the current directory"
|
|
17
|
+
echo "Error: Nargo.toml already exists in the current directory."
|
|
18
|
+
echo "To add another contract crate to this workspace, use 'aztec new <name>' instead."
|
|
17
19
|
exit 1
|
|
18
20
|
fi
|
|
19
21
|
|
|
20
|
-
#
|
|
21
|
-
AZTEC_VERSION=$(jq -r '.version' $(dirname $0)/../package.json)
|
|
22
|
-
|
|
23
|
-
# Create workspace root Nargo.toml
|
|
22
|
+
# Create workspace root Nargo.toml with empty members (add_crate.sh will populate)
|
|
24
23
|
cat > Nargo.toml << 'EOF'
|
|
25
24
|
[workspace]
|
|
26
|
-
members = [
|
|
27
|
-
EOF
|
|
28
|
-
|
|
29
|
-
# Create contract crate
|
|
30
|
-
mkdir -p contract/src
|
|
31
|
-
cat > contract/Nargo.toml << CEOF
|
|
32
|
-
[package]
|
|
33
|
-
name = "${package_name}"
|
|
34
|
-
type = "contract"
|
|
35
|
-
|
|
36
|
-
[dependencies]
|
|
37
|
-
aztec = { git="https://github.com/AztecProtocol/aztec-nr", tag="v${AZTEC_VERSION}", directory="aztec" }
|
|
38
|
-
CEOF
|
|
39
|
-
|
|
40
|
-
cat > contract/src/main.nr << 'EOF'
|
|
41
|
-
use aztec::macros::aztec;
|
|
42
|
-
|
|
43
|
-
#[aztec]
|
|
44
|
-
pub contract Main {
|
|
45
|
-
use aztec::macros::functions::{external, initializer};
|
|
46
|
-
|
|
47
|
-
#[initializer]
|
|
48
|
-
#[external("private")]
|
|
49
|
-
fn constructor() {}
|
|
50
|
-
}
|
|
25
|
+
members = []
|
|
51
26
|
EOF
|
|
52
27
|
|
|
53
|
-
# Create
|
|
54
|
-
|
|
55
|
-
cat > test/Nargo.toml << TEOF
|
|
56
|
-
[package]
|
|
57
|
-
name = "${package_name}_test"
|
|
58
|
-
type = "lib"
|
|
59
|
-
|
|
60
|
-
[dependencies]
|
|
61
|
-
aztec = { git="https://github.com/AztecProtocol/aztec-nr", tag="v${AZTEC_VERSION}", directory="aztec" }
|
|
62
|
-
${package_name} = { path = "../contract" }
|
|
63
|
-
TEOF
|
|
64
|
-
|
|
65
|
-
cat > test/src/lib.nr << 'NOIR'
|
|
66
|
-
use aztec::test::helpers::test_environment::TestEnvironment;
|
|
67
|
-
use __PACKAGE_NAME__::Main;
|
|
68
|
-
|
|
69
|
-
#[test]
|
|
70
|
-
unconstrained fn test_constructor() {
|
|
71
|
-
let mut env = TestEnvironment::new();
|
|
72
|
-
let deployer = env.create_light_account();
|
|
73
|
-
|
|
74
|
-
// Deploy the contract with the default constructor:
|
|
75
|
-
let contract_address = env.deploy("@__PACKAGE_NAME__/Main").with_private_initializer(
|
|
76
|
-
deployer,
|
|
77
|
-
Main::interface().constructor(),
|
|
78
|
-
);
|
|
79
|
-
|
|
80
|
-
// Deploy without an initializer:
|
|
81
|
-
let contract_address = env.deploy("@__PACKAGE_NAME__/Main").without_initializer();
|
|
82
|
-
}
|
|
83
|
-
NOIR
|
|
84
|
-
|
|
85
|
-
sed -i "s/__PACKAGE_NAME__/${package_name}/g" test/src/lib.nr
|
|
28
|
+
# Create the first crate pair
|
|
29
|
+
$script_path/add_crate.sh "$package_name"
|
|
86
30
|
|
|
87
31
|
# Create README
|
|
88
32
|
cat > README.md << REOF
|
|
@@ -96,7 +40,7 @@ An Aztec Noir contract project.
|
|
|
96
40
|
aztec compile
|
|
97
41
|
\`\`\`
|
|
98
42
|
|
|
99
|
-
This compiles
|
|
43
|
+
This compiles all contract crates and outputs artifacts to \`target/\`.
|
|
100
44
|
|
|
101
45
|
## Test
|
|
102
46
|
|
|
@@ -104,7 +48,7 @@ This compiles the contract in \`contract/\` and outputs artifacts to \`target/\`
|
|
|
104
48
|
aztec test
|
|
105
49
|
\`\`\`
|
|
106
50
|
|
|
107
|
-
This runs
|
|
51
|
+
This runs all tests in the workspace.
|
|
108
52
|
|
|
109
53
|
## Generate TypeScript bindings
|
|
110
54
|
|
|
@@ -121,4 +65,4 @@ target/
|
|
|
121
65
|
codegenCache.json
|
|
122
66
|
GEOF
|
|
123
67
|
|
|
124
|
-
echo "Created Aztec contract workspace with crates '${package_name}' and '${package_name}_test'"
|
|
68
|
+
echo "Created Aztec contract workspace with crates '${package_name}_contract' and '${package_name}_test'"
|