@aztec/aztec.js 3.0.0-nightly.20251118 → 3.0.0-nightly.20251119

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.
Files changed (41) hide show
  1. package/dest/api/contract.d.ts +1 -1
  2. package/dest/api/contract.js +1 -1
  3. package/dest/api/wallet.d.ts +1 -1
  4. package/dest/api/wallet.d.ts.map +1 -1
  5. package/dest/contract/contract.d.ts +1 -1
  6. package/dest/contract/contract.d.ts.map +1 -1
  7. package/dest/contract/contract.js +4 -5
  8. package/dest/contract/contract_base.d.ts +5 -9
  9. package/dest/contract/contract_base.d.ts.map +1 -1
  10. package/dest/contract/contract_base.js +5 -12
  11. package/dest/contract/deploy_method.d.ts +5 -4
  12. package/dest/contract/deploy_method.d.ts.map +1 -1
  13. package/dest/contract/deploy_method.js +4 -2
  14. package/dest/contract/deploy_sent_tx.d.ts +11 -6
  15. package/dest/contract/deploy_sent_tx.d.ts.map +1 -1
  16. package/dest/contract/deploy_sent_tx.js +10 -4
  17. package/dest/contract/unsafe_contract.js +1 -1
  18. package/dest/deployment/contract_deployer.d.ts.map +1 -1
  19. package/dest/deployment/contract_deployer.js +1 -1
  20. package/dest/wallet/account_manager.js +1 -1
  21. package/dest/wallet/base_wallet.d.ts +3 -3
  22. package/dest/wallet/base_wallet.d.ts.map +1 -1
  23. package/dest/wallet/base_wallet.js +22 -39
  24. package/dest/wallet/deploy_account_method.d.ts +2 -2
  25. package/dest/wallet/deploy_account_method.d.ts.map +1 -1
  26. package/dest/wallet/wallet.d.ts +2 -9
  27. package/dest/wallet/wallet.d.ts.map +1 -1
  28. package/dest/wallet/wallet.js +1 -1
  29. package/package.json +8 -8
  30. package/src/api/contract.ts +1 -1
  31. package/src/api/wallet.ts +0 -1
  32. package/src/contract/contract.ts +7 -5
  33. package/src/contract/contract_base.ts +5 -15
  34. package/src/contract/deploy_method.ts +8 -7
  35. package/src/contract/deploy_sent_tx.ts +17 -10
  36. package/src/contract/unsafe_contract.ts +1 -1
  37. package/src/deployment/contract_deployer.ts +3 -2
  38. package/src/wallet/account_manager.ts +1 -1
  39. package/src/wallet/base_wallet.ts +24 -43
  40. package/src/wallet/deploy_account_method.ts +2 -1
  41. package/src/wallet/wallet.ts +4 -19
@@ -15,7 +15,7 @@
15
15
  * ```
16
16
  *
17
17
  * ```ts
18
- * const contract = await Contract.at(address, MyContractArtifact, wallet);
18
+ * const contract = Contract.at(address, MyContractArtifact, wallet);
19
19
  * await contract.methods.mint(1000, owner).send().wait();
20
20
  * console.log(`Total supply is now ${await contract.methods.totalSupply().simulate()}`);
21
21
  * ```
@@ -15,7 +15,7 @@
15
15
  * ```
16
16
  *
17
17
  * ```ts
18
- * const contract = await Contract.at(address, MyContractArtifact, wallet);
18
+ * const contract = Contract.at(address, MyContractArtifact, wallet);
19
19
  * await contract.methods.mint(1000, owner).send().wait();
20
20
  * console.log(`Total supply is now ${await contract.methods.totalSupply().simulate()}`);
21
21
  * ```
@@ -1,4 +1,4 @@
1
- export { type Aliased, type ContractInstanceAndArtifact, type SimulateOptions, type ProfileOptions, type SendOptions, type BatchableMethods, type BatchedMethod, type BatchedMethodResult, type BatchedMethodResultWrapper, type BatchResults, type Wallet, ContractInstantiationDataSchema, FunctionCallSchema, ExecutionPayloadSchema, GasSettingsOptionSchema, WalletSimulationFeeOptionSchema, SendOptionsSchema, SimulateOptionsSchema, ProfileOptionsSchema, InstanceDataSchema, MessageHashOrIntentSchema, BatchedMethodSchema, ContractMetadataSchema, ContractClassMetadataSchema, EventMetadataDefinitionSchema, WalletSchema, } from '../wallet/wallet.js';
1
+ export { type Aliased, type SimulateOptions, type ProfileOptions, type SendOptions, type BatchableMethods, type BatchedMethod, type BatchedMethodResult, type BatchedMethodResultWrapper, type BatchResults, type Wallet, ContractInstantiationDataSchema, FunctionCallSchema, ExecutionPayloadSchema, GasSettingsOptionSchema, WalletSimulationFeeOptionSchema, SendOptionsSchema, SimulateOptionsSchema, ProfileOptionsSchema, InstanceDataSchema, MessageHashOrIntentSchema, BatchedMethodSchema, ContractMetadataSchema, ContractClassMetadataSchema, EventMetadataDefinitionSchema, WalletSchema, } from '../wallet/wallet.js';
2
2
  export { type FeeOptions, BaseWallet } from '../wallet/base_wallet.js';
3
3
  export { AccountManager } from '../wallet/account_manager.js';
4
4
  export { type DeployAccountOptions, DeployAccountMethod } from '../wallet/deploy_account_method.js';
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,+BAA+B,EAC/B,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,KAAK,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,+BAA+B,EAC/B,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,KAAK,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC"}
@@ -19,7 +19,7 @@ export declare class Contract extends ContractBase {
19
19
  * @param wallet - The wallet to use when interacting with the contract.
20
20
  * @returns A promise that resolves to a new Contract instance.
21
21
  */
22
- static at(address: AztecAddress, artifact: ContractArtifact, wallet: Wallet): Promise<Contract>;
22
+ static at(address: AztecAddress, artifact: ContractArtifact, wallet: Wallet): Contract;
23
23
  /**
24
24
  * Creates a tx to deploy (initialize and/or publish) a new instance of a contract.
25
25
  * @param wallet - The wallet for executing the deployment.
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/contract/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC;;;;;;OAMG;WACiB,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK5G;;;;;;OAMG;WACW,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM;IAKtG;;;;;;;;OAQG;WACW,oBAAoB,CAChC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,GAAG,EAAE,EACX,eAAe,CAAC,EAAE,MAAM;CAK3B"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/contract/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC;;;;;;OAMG;WACW,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ;IAI7F;;;;;;OAMG;WACW,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM;IAMtG;;;;;;;;OAQG;WACW,oBAAoB,CAChC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,GAAG,EAAE,EACX,eAAe,CAAC,EAAE,MAAM;CAM3B"}
@@ -14,9 +14,8 @@ import { DeployMethod } from './deploy_method.js';
14
14
  * @param artifact - Build artifact of the contract.
15
15
  * @param wallet - The wallet to use when interacting with the contract.
16
16
  * @returns A promise that resolves to a new Contract instance.
17
- */ static async at(address, artifact, wallet) {
18
- const instance = await wallet.registerContract(address, artifact);
19
- return new Contract(instance, artifact, wallet);
17
+ */ static at(address, artifact, wallet) {
18
+ return new Contract(address, artifact, wallet);
20
19
  }
21
20
  /**
22
21
  * Creates a tx to deploy (initialize and/or publish) a new instance of a contract.
@@ -25,7 +24,7 @@ import { DeployMethod } from './deploy_method.js';
25
24
  * @param args - Arguments for the constructor.
26
25
  * @param constructorName - The name of the constructor function to call.
27
26
  */ static deploy(wallet, artifact, args, constructorName) {
28
- const postDeployCtor = (address, wallet)=>Contract.at(address, artifact, wallet);
27
+ const postDeployCtor = (instance, wallet)=>Contract.at(instance.address, artifact, wallet);
29
28
  return new DeployMethod(PublicKeys.default(), wallet, artifact, postDeployCtor, args, constructorName);
30
29
  }
31
30
  /**
@@ -37,7 +36,7 @@ import { DeployMethod } from './deploy_method.js';
37
36
  * @param args - Arguments for the constructor.
38
37
  * @param constructorName - The name of the constructor function to call.
39
38
  */ static deployWithPublicKeys(publicKeys, wallet, artifact, args, constructorName) {
40
- const postDeployCtor = (address, wallet)=>Contract.at(address, artifact, wallet);
39
+ const postDeployCtor = (instance, wallet)=>Contract.at(instance.address, artifact, wallet);
41
40
  return new DeployMethod(publicKeys, wallet, artifact, postDeployCtor, args, constructorName);
42
41
  }
43
42
  }
@@ -1,5 +1,5 @@
1
1
  import { type ContractArtifact, type FieldLayout, FunctionSelector } from '@aztec/stdlib/abi';
2
- import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
2
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
3
  import type { Wallet } from '../wallet/wallet.js';
4
4
  import { ContractFunctionInteraction } from './contract_function_interaction.js';
5
5
  /**
@@ -22,8 +22,8 @@ export type ContractStorageLayout<T extends string> = {
22
22
  * Abstract implementation of a contract extended by the Contract class and generated contract types.
23
23
  */
24
24
  export declare class ContractBase {
25
- /** The deployed contract instance definition. */
26
- readonly instance: ContractInstanceWithAddress;
25
+ /** The contract's address. */
26
+ readonly address: AztecAddress;
27
27
  /** The Application Binary Interface for the contract. */
28
28
  readonly artifact: ContractArtifact;
29
29
  /** The wallet used for interacting with this contract. */
@@ -35,16 +35,12 @@ export declare class ContractBase {
35
35
  [name: string]: ContractMethod;
36
36
  };
37
37
  protected constructor(
38
- /** The deployed contract instance definition. */
39
- instance: ContractInstanceWithAddress,
38
+ /** The contract's address. */
39
+ address: AztecAddress,
40
40
  /** The Application Binary Interface for the contract. */
41
41
  artifact: ContractArtifact,
42
42
  /** The wallet used for interacting with this contract. */
43
43
  wallet: Wallet);
44
- /** Address of the contract. */
45
- get address(): import("../api/addresses.js").AztecAddress;
46
- /** Partial address of the contract. */
47
- get partialAddress(): Promise<import("@aztec/foundation/schemas").Fr>;
48
44
  /**
49
45
  * Creates a new instance of the contract wrapper attached to a different wallet.
50
46
  * @param wallet - Wallet to use for sending txs.
@@ -1 +1 @@
1
- {"version":3,"file":"contract_base.d.ts","sourceRoot":"","sources":["../../src/contract/contract_base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAEhB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,2BAA2B,EAAyB,MAAM,wBAAwB,CAAC;AAEjG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,2BAA2B,CAAC,GAAG;IAC/E;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,MAAM,IAAI;KACnD,CAAC,IAAI,CAAC,GAAG,WAAW;CACtB,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAY;IAOrB,iDAAiD;aACjC,QAAQ,EAAE,2BAA2B;IACrD,yDAAyD;aACzC,QAAQ,EAAE,gBAAgB;IAC1C,0DAA0D;IACnD,MAAM,EAAE,MAAM;IAXvB;;OAEG;IACI,OAAO,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAM;IAExD,SAAS;IACP,iDAAiD;IACjC,QAAQ,EAAE,2BAA2B;IACrD,yDAAyD;IACzC,QAAQ,EAAE,gBAAgB;IAC1C,0DAA0D;IACnD,MAAM,EAAE,MAAM;IAmBvB,+BAA+B;IAC/B,IAAW,OAAO,+CAEjB;IAED,uCAAuC;IACvC,IAAW,cAAc,oDAExB;IAED;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGxC"}
1
+ {"version":3,"file":"contract_base.d.ts","sourceRoot":"","sources":["../../src/contract/contract_base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAEhB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,2BAA2B,CAAC,GAAG;IAC/E;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,MAAM,IAAI;KACnD,CAAC,IAAI,CAAC,GAAG,WAAW;CACtB,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAY;IAOrB,8BAA8B;aACd,OAAO,EAAE,YAAY;IACrC,yDAAyD;aACzC,QAAQ,EAAE,gBAAgB;IAC1C,0DAA0D;IACnD,MAAM,EAAE,MAAM;IAXvB;;OAEG;IACI,OAAO,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAM;IAExD,SAAS;IACP,8BAA8B;IACd,OAAO,EAAE,YAAY;IACrC,yDAAyD;IACzC,QAAQ,EAAE,gBAAgB;IAC1C,0DAA0D;IACnD,MAAM,EAAE,MAAM;IAmBvB;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGxC"}
@@ -1,23 +1,22 @@
1
1
  import { FunctionSelector, getAllFunctionAbis } from '@aztec/stdlib/abi';
2
- import { computePartialAddress } from '@aztec/stdlib/contract';
3
2
  import { ContractFunctionInteraction } from './contract_function_interaction.js';
4
3
  /**
5
4
  * Abstract implementation of a contract extended by the Contract class and generated contract types.
6
5
  */ export class ContractBase {
7
- instance;
6
+ address;
8
7
  artifact;
9
8
  wallet;
10
9
  /**
11
10
  * An object containing contract methods mapped to their respective names.
12
11
  */ methods;
13
- constructor(/** The deployed contract instance definition. */ instance, /** The Application Binary Interface for the contract. */ artifact, /** The wallet used for interacting with this contract. */ wallet){
14
- this.instance = instance;
12
+ constructor(/** The contract's address. */ address, /** The Application Binary Interface for the contract. */ artifact, /** The wallet used for interacting with this contract. */ wallet){
13
+ this.address = address;
15
14
  this.artifact = artifact;
16
15
  this.wallet = wallet;
17
16
  this.methods = {};
18
17
  getAllFunctionAbis(artifact).forEach((f)=>{
19
18
  const interactionFunction = (...args)=>{
20
- return new ContractFunctionInteraction(this.wallet, this.instance.address, f, args);
19
+ return new ContractFunctionInteraction(this.wallet, this.address, f, args);
21
20
  };
22
21
  this.methods[f.name] = Object.assign(interactionFunction, {
23
22
  /**
@@ -29,17 +28,11 @@ import { ContractFunctionInteraction } from './contract_function_interaction.js'
29
28
  });
30
29
  });
31
30
  }
32
- /** Address of the contract. */ get address() {
33
- return this.instance.address;
34
- }
35
- /** Partial address of the contract. */ get partialAddress() {
36
- return computePartialAddress(this.instance);
37
- }
38
31
  /**
39
32
  * Creates a new instance of the contract wrapper attached to a different wallet.
40
33
  * @param wallet - Wallet to use for sending txs.
41
34
  * @returns A new contract instance.
42
35
  */ withWallet(wallet) {
43
- return new ContractBase(this.instance, this.artifact, wallet);
36
+ return new ContractBase(this.address, this.artifact, wallet);
44
37
  }
45
38
  }
@@ -8,7 +8,6 @@ import { type Capsule, type TxProfileResult } from '@aztec/stdlib/tx';
8
8
  import { ExecutionPayload } from '@aztec/stdlib/tx';
9
9
  import type { Wallet } from '../wallet/wallet.js';
10
10
  import { BaseContractInteraction } from './base_contract_interaction.js';
11
- import type { Contract } from './contract.js';
12
11
  import type { ContractBase } from './contract_base.js';
13
12
  import { DeploySentTx } from './deploy_sent_tx.js';
14
13
  import { type ProfileInteractionOptions, type RequestInteractionOptions, type SendInteractionOptions, type SimulationInteractionFeeOptions, type SimulationReturn } from './interaction_options.js';
@@ -31,6 +30,8 @@ export type RequestDeployOptions = RequestInteractionOptions & {
31
30
  skipInstancePublication?: boolean;
32
31
  /** Skip contract initialization. */
33
32
  skipInitialization?: boolean;
33
+ /** Skip contract registration in the wallet */
34
+ skipRegistration?: boolean;
34
35
  };
35
36
  /**
36
37
  * Extends the deployment options with the required parameters to send the transaction
@@ -71,16 +72,16 @@ export type SimulateDeployOptions = Omit<DeployOptions, 'fee'> & {
71
72
  *
72
73
  * Extends the BaseContractInteraction class.
73
74
  */
74
- export declare class DeployMethod<TContract extends ContractBase = Contract> extends BaseContractInteraction {
75
+ export declare class DeployMethod<TContract extends ContractBase = ContractBase> extends BaseContractInteraction {
75
76
  private publicKeys;
76
77
  protected artifact: ContractArtifact;
77
- protected postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>;
78
+ protected postDeployCtor: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract;
78
79
  private args;
79
80
  /** The contract instance to be deployed. */
80
81
  private instance?;
81
82
  /** Constructor function to call. */
82
83
  private constructorArtifact;
83
- constructor(publicKeys: PublicKeys, wallet: Wallet, artifact: ContractArtifact, postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>, args?: any[], constructorNameOrArtifact?: string | FunctionArtifact, authWitnesses?: AuthWitness[], capsules?: Capsule[]);
84
+ constructor(publicKeys: PublicKeys, wallet: Wallet, artifact: ContractArtifact, postDeployCtor: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract, args?: any[], constructorNameOrArtifact?: string | FunctionArtifact, authWitnesses?: AuthWitness[], capsules?: Capsule[]);
84
85
  /**
85
86
  * Returns the execution payload that allows this operation to happen on chain.
86
87
  * @param options - Configuration options.
@@ -1 +1 @@
1
- {"version":3,"file":"deploy_method.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_method.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy_method.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_method.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,9 @@ import { toProfileOptions, toSendOptions, toSimulateOptions } from './interactio
39
39
  * @returns The execution payload for this operation
40
40
  */ async request(options) {
41
41
  const publication = await this.getPublicationExecutionPayload(options);
42
- await this.wallet.registerContract(await this.getInstance(options), this.artifact);
42
+ if (!options?.skipRegistration) {
43
+ await this.wallet.registerContract(await this.getInstance(options), this.artifact);
44
+ }
43
45
  const initialization = await this.getInitializationExecutionPayload(options);
44
46
  const feeExecutionPayload = options?.fee?.paymentMethod ? await options.fee.paymentMethod.getExecutionPayload() : undefined;
45
47
  const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
@@ -67,7 +69,7 @@ import { toProfileOptions, toSendOptions, toSimulateOptions } from './interactio
67
69
  */ async register(options) {
68
70
  const instance = await this.getInstance(options);
69
71
  await this.wallet.registerContract(instance, this.artifact);
70
- return this.postDeployCtor(instance.address, this.wallet);
72
+ return this.postDeployCtor(instance, this.wallet);
71
73
  }
72
74
  /**
73
75
  * Returns an execution payload for:
@@ -1,9 +1,7 @@
1
1
  import type { FieldsOf } from '@aztec/foundation/types';
2
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
2
  import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
4
3
  import type { TxHash, TxReceipt } from '@aztec/stdlib/tx';
5
4
  import type { Wallet } from '../wallet/wallet.js';
6
- import type { Contract } from './contract.js';
7
5
  import type { ContractBase } from './contract_base.js';
8
6
  import { SentTx, type WaitOpts } from './sent_tx.js';
9
7
  /** Options related to waiting for a deployment tx. */
@@ -12,21 +10,28 @@ export type DeployedWaitOpts = WaitOpts & {
12
10
  wallet?: Wallet;
13
11
  };
14
12
  /** Extends a transaction receipt with a contract instance that represents the newly deployed contract. */
15
- export type DeployTxReceipt<TContract extends ContractBase = Contract> = FieldsOf<TxReceipt> & {
13
+ export type DeployTxReceipt<TContract extends ContractBase = ContractBase> = FieldsOf<TxReceipt> & {
16
14
  /** Instance of the newly deployed contract. */
17
15
  contract: TContract;
16
+ /** The deployed contract instance with address and metadata. */
17
+ instance: ContractInstanceWithAddress;
18
18
  };
19
19
  /**
20
20
  * A contract deployment transaction sent to the network, extending SentTx with methods to publish a contract instance.
21
21
  */
22
- export declare class DeploySentTx<TContract extends Contract = Contract> extends SentTx {
22
+ export declare class DeploySentTx<TContract extends ContractBase = ContractBase> extends SentTx {
23
23
  private postDeployCtor;
24
24
  /** A getter for the deployed contract instance */
25
- instanceGetter: () => Promise<ContractInstanceWithAddress>;
25
+ private instanceGetter;
26
26
  private log;
27
- constructor(wallet: Wallet, sendTx: () => Promise<TxHash>, postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>,
27
+ constructor(wallet: Wallet, sendTx: () => Promise<TxHash>, postDeployCtor: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract,
28
28
  /** A getter for the deployed contract instance */
29
29
  instanceGetter: () => Promise<ContractInstanceWithAddress>);
30
+ /**
31
+ * Returns the contract instance for this deployment.
32
+ * @returns The deployed contract instance with address and metadata.
33
+ */
34
+ getInstance(): Promise<ContractInstanceWithAddress>;
30
35
  /**
31
36
  * Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
32
37
  * @param opts - Options for configuring the waiting for the tx to be mined.
@@ -1 +1 @@
1
- {"version":3,"file":"deploy_sent_tx.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_sent_tx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAErD,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IACxC,+GAA+G;IAC/G,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0GAA0G;AAC1G,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,YAAY,GAAG,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG;IAC7F,+CAA+C;IAC/C,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAY,CAAC,SAAS,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,MAAM;IAM3E,OAAO,CAAC,cAAc;IACtB,kDAAkD;IAC3C,cAAc,EAAE,MAAM,OAAO,CAAC,2BAA2B,CAAC;IAPnE,OAAO,CAAC,GAAG,CAA0C;gBAGnD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACrB,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC;IACrF,kDAAkD;IAC3C,cAAc,EAAE,MAAM,OAAO,CAAC,2BAA2B,CAAC;IAKnE;;;;OAIG;IACU,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAOlE;;;;OAIG;IACmB,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;CAWzF"}
1
+ {"version":3,"file":"deploy_sent_tx.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_sent_tx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAErD,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IACxC,+GAA+G;IAC/G,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0GAA0G;AAC1G,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,YAAY,GAAG,YAAY,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG;IACjG,+CAA+C;IAC/C,QAAQ,EAAE,SAAS,CAAC;IACpB,gEAAgE;IAChE,QAAQ,EAAE,2BAA2B,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAY,CAAC,SAAS,SAAS,YAAY,GAAG,YAAY,CAAE,SAAQ,MAAM;IAMnF,OAAO,CAAC,cAAc;IACtB,kDAAkD;IAClD,OAAO,CAAC,cAAc;IAPxB,OAAO,CAAC,GAAG,CAA0C;gBAGnD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACrB,cAAc,EAAE,CAAC,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,KAAK,SAAS;IAC5F,kDAAkD;IAC1C,cAAc,EAAE,MAAM,OAAO,CAAC,2BAA2B,CAAC;IAKpE;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAIhE;;;;OAIG;IACU,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAMlE;;;;OAIG;IACmB,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;CAWzF"}
@@ -10,13 +10,18 @@ import { SentTx } from './sent_tx.js';
10
10
  super(wallet, sendTx), this.postDeployCtor = postDeployCtor, this.instanceGetter = instanceGetter, this.log = createLogger('aztecjs:deploy_sent_tx');
11
11
  }
12
12
  /**
13
+ * Returns the contract instance for this deployment.
14
+ * @returns The deployed contract instance with address and metadata.
15
+ */ async getInstance() {
16
+ return await this.instanceGetter();
17
+ }
18
+ /**
13
19
  * Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
14
20
  * @param opts - Options for configuring the waiting for the tx to be mined.
15
21
  * @returns The deployed contract instance.
16
22
  */ async deployed(opts) {
17
23
  const receipt = await this.wait(opts);
18
- const instance = await this.instanceGetter();
19
- this.log.info(`Contract ${instance.address.toString()} successfully deployed.`);
24
+ this.log.info(`Contract ${receipt.instance.address.toString()} successfully deployed.`);
20
25
  return receipt.contract;
21
26
  }
22
27
  /**
@@ -31,10 +36,11 @@ import { SentTx } from './sent_tx.js';
31
36
  throw new Error(`A wallet is required for creating a contract instance`);
32
37
  }
33
38
  const instance = await this.instanceGetter();
34
- const contract = await this.postDeployCtor(instance.address, contractWallet);
39
+ const contract = this.postDeployCtor(instance, contractWallet);
35
40
  return {
36
41
  ...receipt,
37
- contract
42
+ contract,
43
+ instance
38
44
  };
39
45
  }
40
46
  }
@@ -1,6 +1,6 @@
1
1
  import { ContractBase } from './contract_base.js';
2
2
  /** Unsafe constructor for ContractBase that bypasses the check that the instance is registered in the wallet. */ export class UnsafeContract extends ContractBase {
3
3
  constructor(/** The deployed contract instance definition. */ instance, /** The Application Binary Interface for the contract. */ artifact, /** The wallet used for interacting with this contract. */ wallet){
4
- super(instance, artifact, wallet);
4
+ super(instance.address, artifact, wallet);
5
5
  }
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contract_deployer.d.ts","sourceRoot":"","sources":["../../src/deployment/contract_deployer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;GAGG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,eAAe,CAAC;gBAHhB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,UAAU,YAAA,EACvB,eAAe,CAAC,EAAE,MAAM,YAAA;IAGlC;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAW7B"}
1
+ {"version":3,"file":"contract_deployer.d.ts","sourceRoot":"","sources":["../../src/deployment/contract_deployer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;GAGG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,eAAe,CAAC;gBAHhB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,UAAU,YAAA,EACvB,eAAe,CAAC,EAAE,MAAM,YAAA;IAGlC;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAY7B"}
@@ -24,7 +24,7 @@ import { DeployMethod } from '../contract/deploy_method.js';
24
24
  * @param args - The constructor arguments for the contract being deployed.
25
25
  * @returns A DeployMethod instance configured with the ABI, PXE, and constructor arguments.
26
26
  */ deploy(...args) {
27
- const postDeployCtor = (address, wallet)=>Contract.at(address, this.artifact, wallet);
27
+ const postDeployCtor = (instance, wallet)=>Contract.at(instance.address, this.artifact, wallet);
28
28
  return new DeployMethod(this.publicKeys ?? PublicKeys.default(), this.wallet, this.artifact, postDeployCtor, args, this.constructorName);
29
29
  }
30
30
  }
@@ -103,7 +103,7 @@ import { DeployAccountMethod } from './deploy_account_method.js';
103
103
  constructorName: undefined,
104
104
  constructorArgs: undefined
105
105
  };
106
- return new DeployAccountMethod(this.getPublicKeys(), this.wallet, artifact, (address)=>Contract.at(address, artifact, this.wallet), new Fr(this.salt), constructorArgs, constructorName);
106
+ return new DeployAccountMethod(this.getPublicKeys(), this.wallet, artifact, (instance)=>Contract.at(instance.address, artifact, this.wallet), new Fr(this.salt), constructorArgs, constructorName);
107
107
  }
108
108
  /**
109
109
  * Returns whether this account contract has an initializer function.
@@ -5,7 +5,7 @@ import type { FieldsOf } from '@aztec/foundation/types';
5
5
  import { type ContractArtifact, type EventMetadataDefinition, type FunctionCall } from '@aztec/stdlib/abi';
6
6
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
7
7
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
8
- import { type ContractClassMetadata, type ContractInstanceWithAddress, type ContractInstantiationData, type ContractMetadata } from '@aztec/stdlib/contract';
8
+ import { type ContractClassMetadata, type ContractInstanceWithAddress, type ContractMetadata } from '@aztec/stdlib/contract';
9
9
  import { GasSettings } from '@aztec/stdlib/gas';
10
10
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
11
11
  import type { TxExecutionRequest, TxHash, TxProfileResult, TxReceipt, TxSimulationResult, UtilitySimulationResult } from '@aztec/stdlib/tx';
@@ -13,7 +13,7 @@ import { ExecutionPayload } from '@aztec/stdlib/tx';
13
13
  import type { Account } from '../account/account.js';
14
14
  import type { FeePaymentMethod } from '../fee/fee_payment_method.js';
15
15
  import type { CallIntent, IntentInnerHash } from '../utils/authwit.js';
16
- import type { Aliased, BatchResults, BatchableMethods, BatchedMethod, ContractInstanceAndArtifact, ProfileOptions, SendOptions, SimulateOptions, Wallet } from './wallet.js';
16
+ import type { Aliased, BatchResults, BatchableMethods, BatchedMethod, ProfileOptions, SendOptions, SimulateOptions, Wallet } from './wallet.js';
17
17
  /**
18
18
  * Options to configure fee payment for a transaction
19
19
  */
@@ -79,7 +79,7 @@ export declare abstract class BaseWallet implements Wallet {
79
79
  accountFeePaymentMethodOptions: AccountFeePaymentMethodOptions;
80
80
  }>;
81
81
  registerSender(address: AztecAddress, _alias?: string): Promise<AztecAddress>;
82
- registerContract(instanceData: AztecAddress | ContractInstanceWithAddress | ContractInstantiationData | ContractInstanceAndArtifact, artifact?: ContractArtifact, secretKey?: Fr): Promise<ContractInstanceWithAddress>;
82
+ registerContract(instance: ContractInstanceWithAddress, artifact?: ContractArtifact, secretKey?: Fr): Promise<ContractInstanceWithAddress>;
83
83
  simulateTx(executionPayload: ExecutionPayload, opts: SimulateOptions): Promise<TxSimulationResult>;
84
84
  profileTx(executionPayload: ExecutionPayload, opts: ProfileOptions): Promise<TxProfileResult>;
85
85
  sendTx(executionPayload: ExecutionPayload, opts: SendOptions): Promise<TxHash>;
@@ -1 +1 @@
1
- {"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/base_wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/base_wallet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,8BAA8B,EAAwC,MAAM,4BAA4B,CAAC;AAClH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EAGtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAO,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAA0B,MAAM,kBAAkB,CAAC;AAI5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,EACf,MAAM,EACP,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,gBAAgB,CAAC;IAC1C,+FAA+F;IAC/F,8BAA8B,EAAE,8BAA8B,CAAC;IAC/D,kDAAkD;IAClD,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,8BAAsB,UAAW,YAAW,MAAM;IAU9C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG;IAC3B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS;IAVzC,SAAS,CAAC,GAAG,yCAAuC;IAEpD,SAAS,CAAC,cAAc,SAAO;IAC/B,SAAS,CAAC,uBAAuB,UAAS;IAG1C,SAAS,aAGY,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS;IAGzC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAEjF,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;IAExD;;;;;;OAMG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;IAKlD,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;cAKxB,yCAAyC,CACvD,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAcjB,aAAa,CACxB,IAAI,EAAE,YAAY,EAClB,mBAAmB,EAAE,EAAE,GAAG,eAAe,GAAG,UAAU,GACrD,OAAO,CAAC,WAAW,CAAC;IAKV,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,aAAa,CAAC,MAAM,gBAAgB,CAAC,EAAE,EACjF,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAkB3B;;;;;;OAMG;cACa,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,QAAQ,CAAC,EAAE,YAAY,EACvB,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAC3C,OAAO,CAAC,UAAU,CAAC;IAwBtB;;;;;;;OAOG;cACa,+BAA+B,CAC7C,IAAI,EAAE,YAAY,EAClB,QAAQ,CAAC,EAAE,YAAY,EACvB,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;;QA7I9C;;;WAGG;iCACsB,gBAAgB;QACzC,+FAA+F;wCAC/D,8BAA8B;;IA2J9D,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3E,gBAAgB,CACpB,QAAQ,EAAE,2BAA2B,EACrC,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,SAAS,CAAC,EAAE,EAAE,GACb,OAAO,CAAC,2BAA2B,CAAC;IAmCjC,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAalG,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAM7F,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBpF,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK;IAcrE,eAAe,CACb,IAAI,EAAE,YAAY,EAClB,QAAQ,CAAC,EAAE,WAAW,EAAE,EACxB,MAAM,CAAC,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,uBAAuB,CAAC;IAInC,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAGlG,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIrE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI1C,gBAAgB,CAAC,CAAC,EACtB,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,uBAAuB,EACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,YAAY,EAAO,GAC9B,OAAO,CAAC,CAAC,EAAE,CAAC;CAShB"}
@@ -3,7 +3,7 @@ import { AccountFeePaymentMethodOptions } from '@aztec/entrypoints/account';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
5
  import { decodeFromAbi } from '@aztec/stdlib/abi';
6
- import { computePartialAddress, getContractClassFromArtifact, getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
6
+ import { computePartialAddress, getContractClassFromArtifact } from '@aztec/stdlib/contract';
7
7
  import { SimulationError } from '@aztec/stdlib/errors';
8
8
  import { Gas, GasSettings } from '@aztec/stdlib/gas';
9
9
  import { mergeExecutionPayloads } from '@aztec/stdlib/tx';
@@ -133,50 +133,33 @@ import { inspect } from 'util';
133
133
  registerSender(address, _alias = '') {
134
134
  return this.pxe.registerSender(address);
135
135
  }
136
- async registerContract(instanceData, artifact, secretKey) {
137
- /** Determines if the provided instance data is already a contract instance with an address. */ function isInstanceWithAddress(instanceData) {
138
- return instanceData.address !== undefined;
139
- }
140
- /** Determines if the provided instance data is contract instantiation data */ function isContractInstantiationData(instanceData) {
141
- return instanceData.salt !== undefined;
142
- }
143
- /** Determines if the provided instance data is already a contract */ function isContractInstanceAndArtifact(instanceData) {
144
- return instanceData.instance !== undefined && instanceData.artifact !== undefined;
145
- }
146
- let instance;
147
- if (isContractInstanceAndArtifact(instanceData)) {
148
- instance = instanceData.instance;
149
- await this.pxe.registerContract(instanceData);
150
- } else if (isInstanceWithAddress(instanceData)) {
151
- instance = instanceData;
152
- await this.pxe.registerContract({
153
- artifact,
154
- instance
155
- });
156
- } else if (isContractInstantiationData(instanceData)) {
136
+ async registerContract(instance, artifact, secretKey) {
137
+ const { contractInstance: existingInstance } = await this.pxe.getContractMetadata(instance.address);
138
+ if (existingInstance) {
139
+ // Instance already registered in the wallet
140
+ if (artifact) {
141
+ const thisContractClass = await getContractClassFromArtifact(artifact);
142
+ if (!thisContractClass.id.equals(existingInstance.currentContractClassId)) {
143
+ // wallet holds an outdated version of this contract
144
+ await this.pxe.updateContract(instance.address, artifact);
145
+ instance.currentContractClassId = thisContractClass.id;
146
+ }
147
+ }
148
+ // If no artifact provided, we just use the existing registration
149
+ } else {
150
+ // Instance not registered yet
157
151
  if (!artifact) {
158
- throw new Error(`Contract artifact must be provided when registering a contract using instantiation data`);
152
+ // Try to get the artifact from the wallet's contract class storage
153
+ const classMetadata = await this.pxe.getContractClassMetadata(instance.currentContractClassId, true);
154
+ if (!classMetadata.artifact) {
155
+ throw new Error(`Cannot register contract at ${instance.address.toString()}: artifact is required but not provided, and wallet does not have the artifact for contract class ${instance.currentContractClassId.toString()}`);
156
+ }
157
+ artifact = classMetadata.artifact;
159
158
  }
160
- instance = await getContractInstanceFromInstantiationParams(artifact, instanceData);
161
159
  await this.pxe.registerContract({
162
160
  artifact,
163
161
  instance
164
162
  });
165
- } else {
166
- if (!artifact) {
167
- throw new Error(`Contract artifact must be provided when registering a contract using an address`);
168
- }
169
- const { contractInstance: maybeContractInstance } = await this.pxe.getContractMetadata(instanceData);
170
- if (!maybeContractInstance) {
171
- throw new Error(`Contract instance at ${instanceData.toString()} has not been registered in the wallet's PXE`);
172
- }
173
- instance = maybeContractInstance;
174
- const thisContractClass = await getContractClassFromArtifact(artifact);
175
- if (!thisContractClass.id.equals(instance.currentContractClassId)) {
176
- // wallet holds an outdated version of this contract
177
- await this.pxe.updateContract(instance.address, artifact);
178
- instance.currentContractClassId = thisContractClass.id;
179
- }
180
163
  }
181
164
  if (secretKey) {
182
165
  await this.pxe.registerAccount(secretKey, await computePartialAddress(instance));
@@ -1,6 +1,6 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
2
  import type { ContractArtifact, FunctionArtifact } from '@aztec/stdlib/abi';
3
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
4
4
  import type { PublicKeys } from '@aztec/stdlib/keys';
5
5
  import { ExecutionPayload } from '@aztec/stdlib/tx';
6
6
  import type { Contract } from '../contract/contract.js';
@@ -29,7 +29,7 @@ export type SimulateDeployAccountOptions = Omit<SimulateDeployOptions, 'contract
29
29
  */
30
30
  export declare class DeployAccountMethod<TContract extends ContractBase = Contract> extends DeployMethod<TContract> {
31
31
  private salt;
32
- constructor(publicKeys: PublicKeys, wallet: Wallet, artifact: ContractArtifact, postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>, salt: Fr, args?: any[], constructorNameOrArtifact?: string | FunctionArtifact);
32
+ constructor(publicKeys: PublicKeys, wallet: Wallet, artifact: ContractArtifact, postDeployCtor: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract, salt: Fr, args?: any[], constructorNameOrArtifact?: string | FunctionArtifact);
33
33
  /**
34
34
  * Returns a FeePaymentMethod that routes the original one provided as an argument
35
35
  * through the account's entrypoint. This allows an account contract to pay
@@ -1 +1 @@
1
- {"version":3,"file":"deploy_account_method.d.ts","sourceRoot":"","sources":["../../src/wallet/deploy_account_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAA0B,MAAM,kBAAkB,CAAC;AAE5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AAE5F;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,qBAAqB,GAAG,iBAAiB,CAAC,CAAC;AAElG;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;AAE9F;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,SAAS,SAAS,YAAY,GAAG,QAAQ,CAAE,SAAQ,YAAY,CAAC,SAAS,CAAC;IAMvG,OAAO,CAAC,IAAI;gBAJZ,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,EACrE,IAAI,EAAE,EAAE,EAChB,IAAI,GAAE,GAAG,EAAO,EAChB,yBAAyB,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAKvD;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;;;OAIG;IACmB,OAAO,CAAC,IAAI,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgCnF,oCAAoC,CAAC,OAAO,EAAE,aAAa,GAAG,oBAAoB;CAU5F"}
1
+ {"version":3,"file":"deploy_account_method.d.ts","sourceRoot":"","sources":["../../src/wallet/deploy_account_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAA0B,MAAM,kBAAkB,CAAC;AAE5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AAE5F;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,qBAAqB,GAAG,iBAAiB,CAAC,CAAC;AAElG;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;AAE9F;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,SAAS,SAAS,YAAY,GAAG,QAAQ,CAAE,SAAQ,YAAY,CAAC,SAAS,CAAC;IAMvG,OAAO,CAAC,IAAI;gBAJZ,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,CAAC,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,KAAK,SAAS,EAC5E,IAAI,EAAE,EAAE,EAChB,IAAI,GAAE,GAAG,EAAO,EAChB,yBAAyB,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAKvD;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;;;OAIG;IACmB,OAAO,CAAC,IAAI,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgCnF,oCAAoC,CAAC,OAAO,EAAE,aAAa,GAAG,oBAAoB;CAU5F"}
@@ -3,14 +3,13 @@ import type { Fr } from '@aztec/foundation/fields';
3
3
  import { type ContractArtifact, type EventMetadataDefinition, type FunctionCall, FunctionType } from '@aztec/stdlib/abi';
4
4
  import { AuthWitness } from '@aztec/stdlib/auth-witness';
5
5
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
6
- import { type ContractClassMetadata, type ContractInstanceWithAddress, type ContractInstantiationData, type ContractMetadata } from '@aztec/stdlib/contract';
6
+ import { type ContractClassMetadata, type ContractInstanceWithAddress, type ContractMetadata } from '@aztec/stdlib/contract';
7
7
  import { Gas } from '@aztec/stdlib/gas';
8
8
  import { PublicKeys } from '@aztec/stdlib/keys';
9
9
  import { type ApiSchemaFor, type ZodFor } from '@aztec/stdlib/schemas';
10
10
  import { Capsule, HashedValues, TxHash, TxProfileResult, TxReceipt, TxSimulationResult, UtilitySimulationResult } from '@aztec/stdlib/tx';
11
11
  import type { ExecutionPayload } from '@aztec/stdlib/tx';
12
12
  import { z } from 'zod';
13
- import type { Contract } from '../contract/contract.js';
14
13
  import type { FeeEstimationOptions, GasSettingsOption, ProfileInteractionOptions, SendInteractionOptions, SimulateInteractionOptions } from '../contract/interaction_options.js';
15
14
  import type { CallIntent, IntentInnerHash } from '../utils/authwit.js';
16
15
  /**
@@ -26,10 +25,6 @@ export type Aliased<T> = {
26
25
  */
27
26
  item: T;
28
27
  };
29
- /**
30
- * A reduced representation of a Contract, only including its instance and artifact
31
- */
32
- export type ContractInstanceAndArtifact = Pick<Contract, 'artifact' | 'instance'>;
33
28
  /**
34
29
  * Options for simulating interactions with the wallet. Overrides the fee settings of an interaction with
35
30
  * a simplified version that only hints at the wallet wether the interaction contains a
@@ -104,9 +99,7 @@ export type Wallet = {
104
99
  registerSender(address: AztecAddress, alias?: string): Promise<AztecAddress>;
105
100
  getAddressBook(): Promise<Aliased<AztecAddress>[]>;
106
101
  getAccounts(): Promise<Aliased<AztecAddress>[]>;
107
- registerContract(instanceData: AztecAddress | ContractInstanceWithAddress | ContractInstantiationData | ContractInstanceAndArtifact): Promise<ContractInstanceWithAddress>;
108
- registerContract(instanceData: AztecAddress | ContractInstanceWithAddress | ContractInstantiationData | ContractInstanceAndArtifact, artifact: ContractArtifact): Promise<ContractInstanceWithAddress>;
109
- registerContract(instanceData: AztecAddress | ContractInstanceWithAddress | ContractInstantiationData | ContractInstanceAndArtifact, artifact: ContractArtifact | undefined, secretKey: Fr | undefined): Promise<ContractInstanceWithAddress>;
102
+ registerContract(instance: ContractInstanceWithAddress, artifact?: ContractArtifact, secretKey?: Fr): Promise<ContractInstanceWithAddress>;
110
103
  simulateTx(exec: ExecutionPayload, opts: SimulateOptions): Promise<TxSimulationResult>;
111
104
  simulateUtility(call: FunctionCall, authwits?: AuthWitness[], scopes?: AztecAddress[]): Promise<UtilitySimulationResult>;
112
105
  profileTx(exec: ExecutionPayload, opts: ProfileOptions): Promise<TxProfileResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/wallet.ts"],"names":[],"mappings":"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"}
@@ -175,7 +175,7 @@ export const WalletSchema = {
175
175
  alias: z.string(),
176
176
  item: schemas.AztecAddress
177
177
  }))),
178
- registerContract: z.function().args(InstanceDataSchema, optional(ContractArtifactSchema), optional(schemas.Fr)).returns(ContractInstanceWithAddressSchema),
178
+ registerContract: z.function().args(ContractInstanceWithAddressSchema, optional(ContractArtifactSchema), optional(schemas.Fr)).returns(ContractInstanceWithAddressSchema),
179
179
  simulateTx: z.function().args(ExecutionPayloadSchema, SimulateOptionsSchema).returns(TxSimulationResult.schema),
180
180
  simulateUtility: z.function().args(FunctionCallSchema, optional(z.array(AuthWitness.schema)), optional(z.array(schemas.AztecAddress))).returns(UtilitySimulationResult.schema),
181
181
  profileTx: z.function().args(ExecutionPayloadSchema, ProfileOptionsSchema).returns(TxProfileResult.schema),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aztec/aztec.js",
3
3
  "homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/aztec.js",
4
- "version": "3.0.0-nightly.20251118",
4
+ "version": "3.0.0-nightly.20251119",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "./abi": "./dest/api/abi.js",
@@ -84,13 +84,13 @@
84
84
  ]
85
85
  },
86
86
  "dependencies": {
87
- "@aztec/constants": "3.0.0-nightly.20251118",
88
- "@aztec/entrypoints": "3.0.0-nightly.20251118",
89
- "@aztec/ethereum": "3.0.0-nightly.20251118",
90
- "@aztec/foundation": "3.0.0-nightly.20251118",
91
- "@aztec/l1-artifacts": "3.0.0-nightly.20251118",
92
- "@aztec/protocol-contracts": "3.0.0-nightly.20251118",
93
- "@aztec/stdlib": "3.0.0-nightly.20251118",
87
+ "@aztec/constants": "3.0.0-nightly.20251119",
88
+ "@aztec/entrypoints": "3.0.0-nightly.20251119",
89
+ "@aztec/ethereum": "3.0.0-nightly.20251119",
90
+ "@aztec/foundation": "3.0.0-nightly.20251119",
91
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251119",
92
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251119",
93
+ "@aztec/stdlib": "3.0.0-nightly.20251119",
94
94
  "axios": "^1.12.0",
95
95
  "tslib": "^2.4.0",
96
96
  "viem": "npm:@spalladino/viem@2.38.2-eip7594.0",
@@ -15,7 +15,7 @@
15
15
  * ```
16
16
  *
17
17
  * ```ts
18
- * const contract = await Contract.at(address, MyContractArtifact, wallet);
18
+ * const contract = Contract.at(address, MyContractArtifact, wallet);
19
19
  * await contract.methods.mint(1000, owner).send().wait();
20
20
  * console.log(`Total supply is now ${await contract.methods.totalSupply().simulate()}`);
21
21
  * ```
package/src/api/wallet.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export {
2
2
  type Aliased,
3
- type ContractInstanceAndArtifact,
4
3
  type SimulateOptions,
5
4
  type ProfileOptions,
6
5
  type SendOptions,
@@ -1,5 +1,6 @@
1
1
  import type { ContractArtifact } from '@aztec/stdlib/abi';
2
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
3
4
  import { PublicKeys } from '@aztec/stdlib/keys';
4
5
 
5
6
  import type { Wallet } from '../wallet/wallet.js';
@@ -21,9 +22,8 @@ export class Contract extends ContractBase {
21
22
  * @param wallet - The wallet to use when interacting with the contract.
22
23
  * @returns A promise that resolves to a new Contract instance.
23
24
  */
24
- public static async at(address: AztecAddress, artifact: ContractArtifact, wallet: Wallet): Promise<Contract> {
25
- const instance = await wallet.registerContract(address, artifact);
26
- return new Contract(instance, artifact, wallet);
25
+ public static at(address: AztecAddress, artifact: ContractArtifact, wallet: Wallet): Contract {
26
+ return new Contract(address, artifact, wallet);
27
27
  }
28
28
 
29
29
  /**
@@ -34,7 +34,8 @@ export class Contract extends ContractBase {
34
34
  * @param constructorName - The name of the constructor function to call.
35
35
  */
36
36
  public static deploy(wallet: Wallet, artifact: ContractArtifact, args: any[], constructorName?: string) {
37
- const postDeployCtor = (address: AztecAddress, wallet: Wallet) => Contract.at(address, artifact, wallet);
37
+ const postDeployCtor = (instance: ContractInstanceWithAddress, wallet: Wallet) =>
38
+ Contract.at(instance.address, artifact, wallet);
38
39
  return new DeployMethod(PublicKeys.default(), wallet, artifact, postDeployCtor, args, constructorName);
39
40
  }
40
41
 
@@ -54,7 +55,8 @@ export class Contract extends ContractBase {
54
55
  args: any[],
55
56
  constructorName?: string,
56
57
  ) {
57
- const postDeployCtor = (address: AztecAddress, wallet: Wallet) => Contract.at(address, artifact, wallet);
58
+ const postDeployCtor = (instance: ContractInstanceWithAddress, wallet: Wallet) =>
59
+ Contract.at(instance.address, artifact, wallet);
58
60
  return new DeployMethod(publicKeys, wallet, artifact, postDeployCtor, args, constructorName);
59
61
  }
60
62
  }
@@ -5,7 +5,7 @@ import {
5
5
  FunctionSelector,
6
6
  getAllFunctionAbis,
7
7
  } from '@aztec/stdlib/abi';
8
- import { type ContractInstanceWithAddress, computePartialAddress } from '@aztec/stdlib/contract';
8
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
9
9
 
10
10
  import type { Wallet } from '../wallet/wallet.js';
11
11
  import { ContractFunctionInteraction } from './contract_function_interaction.js';
@@ -38,8 +38,8 @@ export class ContractBase {
38
38
  public methods: { [name: string]: ContractMethod } = {};
39
39
 
40
40
  protected constructor(
41
- /** The deployed contract instance definition. */
42
- public readonly instance: ContractInstanceWithAddress,
41
+ /** The contract's address. */
42
+ public readonly address: AztecAddress,
43
43
  /** The Application Binary Interface for the contract. */
44
44
  public readonly artifact: ContractArtifact,
45
45
  /** The wallet used for interacting with this contract. */
@@ -47,7 +47,7 @@ export class ContractBase {
47
47
  ) {
48
48
  getAllFunctionAbis(artifact).forEach((f: FunctionAbi) => {
49
49
  const interactionFunction = (...args: any[]) => {
50
- return new ContractFunctionInteraction(this.wallet, this.instance.address, f, args);
50
+ return new ContractFunctionInteraction(this.wallet, this.address, f, args);
51
51
  };
52
52
 
53
53
  this.methods[f.name] = Object.assign(interactionFunction, {
@@ -62,22 +62,12 @@ export class ContractBase {
62
62
  });
63
63
  }
64
64
 
65
- /** Address of the contract. */
66
- public get address() {
67
- return this.instance.address;
68
- }
69
-
70
- /** Partial address of the contract. */
71
- public get partialAddress() {
72
- return computePartialAddress(this.instance);
73
- }
74
-
75
65
  /**
76
66
  * Creates a new instance of the contract wrapper attached to a different wallet.
77
67
  * @param wallet - Wallet to use for sending txs.
78
68
  * @returns A new contract instance.
79
69
  */
80
70
  public withWallet(wallet: Wallet): this {
81
- return new ContractBase(this.instance, this.artifact, wallet) as this;
71
+ return new ContractBase(this.address, this.artifact, wallet) as this;
82
72
  }
83
73
  }
@@ -16,7 +16,6 @@ import { publishContractClass } from '../deployment/publish_class.js';
16
16
  import { publishInstance } from '../deployment/publish_instance.js';
17
17
  import type { Wallet } from '../wallet/wallet.js';
18
18
  import { BaseContractInteraction } from './base_contract_interaction.js';
19
- import type { Contract } from './contract.js';
20
19
  import type { ContractBase } from './contract_base.js';
21
20
  import { ContractFunctionInteraction } from './contract_function_interaction.js';
22
21
  import { DeploySentTx } from './deploy_sent_tx.js';
@@ -51,6 +50,8 @@ export type RequestDeployOptions = RequestInteractionOptions & {
51
50
  skipInstancePublication?: boolean;
52
51
  /** Skip contract initialization. */
53
52
  skipInitialization?: boolean;
53
+ /** Skip contract registration in the wallet */
54
+ skipRegistration?: boolean;
54
55
  };
55
56
 
56
57
  /**
@@ -63,8 +64,6 @@ export type DeployOptions = Omit<RequestDeployOptions, 'deployer'> & {
63
64
  */
64
65
  universalDeploy?: boolean;
65
66
  } & Pick<SendInteractionOptions, 'from' | 'fee'>;
66
- // docs:end:deploy_options
67
- // TODO(@spalladino): Add unit tests for this class!
68
67
 
69
68
  /**
70
69
  * Options for simulating the deployment of a contract
@@ -96,7 +95,7 @@ export type SimulateDeployOptions = Omit<DeployOptions, 'fee'> & {
96
95
  *
97
96
  * Extends the BaseContractInteraction class.
98
97
  */
99
- export class DeployMethod<TContract extends ContractBase = Contract> extends BaseContractInteraction {
98
+ export class DeployMethod<TContract extends ContractBase = ContractBase> extends BaseContractInteraction {
100
99
  /** The contract instance to be deployed. */
101
100
  private instance?: ContractInstanceWithAddress = undefined;
102
101
 
@@ -107,7 +106,7 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
107
106
  private publicKeys: PublicKeys,
108
107
  wallet: Wallet,
109
108
  protected artifact: ContractArtifact,
110
- protected postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>,
109
+ protected postDeployCtor: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract,
111
110
  private args: any[] = [],
112
111
  constructorNameOrArtifact?: string | FunctionArtifact,
113
112
  authWitnesses: AuthWitness[] = [],
@@ -125,7 +124,9 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
125
124
  public async request(options?: RequestDeployOptions): Promise<ExecutionPayload> {
126
125
  const publication = await this.getPublicationExecutionPayload(options);
127
126
 
128
- await this.wallet.registerContract(await this.getInstance(options), this.artifact);
127
+ if (!options?.skipRegistration) {
128
+ await this.wallet.registerContract(await this.getInstance(options), this.artifact);
129
+ }
129
130
 
130
131
  const initialization = await this.getInitializationExecutionPayload(options);
131
132
  const feeExecutionPayload = options?.fee?.paymentMethod
@@ -155,7 +156,7 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
155
156
  public async register(options?: RequestDeployOptions): Promise<TContract> {
156
157
  const instance = await this.getInstance(options);
157
158
  await this.wallet.registerContract(instance, this.artifact);
158
- return this.postDeployCtor(instance.address, this.wallet);
159
+ return this.postDeployCtor(instance, this.wallet);
159
160
  }
160
161
 
161
162
  /**
@@ -1,11 +1,9 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import type { FieldsOf } from '@aztec/foundation/types';
3
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
3
  import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
5
4
  import type { TxHash, TxReceipt } from '@aztec/stdlib/tx';
6
5
 
7
6
  import type { Wallet } from '../wallet/wallet.js';
8
- import type { Contract } from './contract.js';
9
7
  import type { ContractBase } from './contract_base.js';
10
8
  import { SentTx, type WaitOpts } from './sent_tx.js';
11
9
 
@@ -16,27 +14,37 @@ export type DeployedWaitOpts = WaitOpts & {
16
14
  };
17
15
 
18
16
  /** Extends a transaction receipt with a contract instance that represents the newly deployed contract. */
19
- export type DeployTxReceipt<TContract extends ContractBase = Contract> = FieldsOf<TxReceipt> & {
17
+ export type DeployTxReceipt<TContract extends ContractBase = ContractBase> = FieldsOf<TxReceipt> & {
20
18
  /** Instance of the newly deployed contract. */
21
19
  contract: TContract;
20
+ /** The deployed contract instance with address and metadata. */
21
+ instance: ContractInstanceWithAddress;
22
22
  };
23
23
 
24
24
  /**
25
25
  * A contract deployment transaction sent to the network, extending SentTx with methods to publish a contract instance.
26
26
  */
27
- export class DeploySentTx<TContract extends Contract = Contract> extends SentTx {
27
+ export class DeploySentTx<TContract extends ContractBase = ContractBase> extends SentTx {
28
28
  private log = createLogger('aztecjs:deploy_sent_tx');
29
29
 
30
30
  constructor(
31
31
  wallet: Wallet,
32
32
  sendTx: () => Promise<TxHash>,
33
- private postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>,
33
+ private postDeployCtor: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract,
34
34
  /** A getter for the deployed contract instance */
35
- public instanceGetter: () => Promise<ContractInstanceWithAddress>,
35
+ private instanceGetter: () => Promise<ContractInstanceWithAddress>,
36
36
  ) {
37
37
  super(wallet, sendTx);
38
38
  }
39
39
 
40
+ /**
41
+ * Returns the contract instance for this deployment.
42
+ * @returns The deployed contract instance with address and metadata.
43
+ */
44
+ public async getInstance(): Promise<ContractInstanceWithAddress> {
45
+ return await this.instanceGetter();
46
+ }
47
+
40
48
  /**
41
49
  * Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
42
50
  * @param opts - Options for configuring the waiting for the tx to be mined.
@@ -44,8 +52,7 @@ export class DeploySentTx<TContract extends Contract = Contract> extends SentTx
44
52
  */
45
53
  public async deployed(opts?: DeployedWaitOpts): Promise<TContract> {
46
54
  const receipt = await this.wait(opts);
47
- const instance = await this.instanceGetter();
48
- this.log.info(`Contract ${instance.address.toString()} successfully deployed.`);
55
+ this.log.info(`Contract ${receipt.instance.address.toString()} successfully deployed.`);
49
56
  return receipt.contract;
50
57
  }
51
58
 
@@ -62,7 +69,7 @@ export class DeploySentTx<TContract extends Contract = Contract> extends SentTx
62
69
  throw new Error(`A wallet is required for creating a contract instance`);
63
70
  }
64
71
  const instance = await this.instanceGetter();
65
- const contract = (await this.postDeployCtor(instance.address, contractWallet)) as TContract;
66
- return { ...receipt, contract };
72
+ const contract = this.postDeployCtor(instance, contractWallet) as TContract;
73
+ return { ...receipt, contract, instance };
67
74
  }
68
75
  }
@@ -14,6 +14,6 @@ export class UnsafeContract extends ContractBase {
14
14
  /** The wallet used for interacting with this contract. */
15
15
  wallet: Wallet,
16
16
  ) {
17
- super(instance, artifact, wallet);
17
+ super(instance.address, artifact, wallet);
18
18
  }
19
19
  }
@@ -1,5 +1,5 @@
1
1
  import type { ContractArtifact } from '@aztec/stdlib/abi';
2
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
2
+ import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
3
3
  import { PublicKeys } from '@aztec/stdlib/keys';
4
4
 
5
5
  import { Contract } from '../contract/contract.js';
@@ -28,7 +28,8 @@ export class ContractDeployer {
28
28
  * @returns A DeployMethod instance configured with the ABI, PXE, and constructor arguments.
29
29
  */
30
30
  public deploy(...args: any[]) {
31
- const postDeployCtor = (address: AztecAddress, wallet: Wallet) => Contract.at(address, this.artifact, wallet);
31
+ const postDeployCtor = (instance: ContractInstanceWithAddress, wallet: Wallet) =>
32
+ Contract.at(instance.address, this.artifact, wallet);
32
33
  return new DeployMethod(
33
34
  this.publicKeys ?? PublicKeys.default(),
34
35
  this.wallet,
@@ -138,7 +138,7 @@ export class AccountManager {
138
138
  this.getPublicKeys(),
139
139
  this.wallet,
140
140
  artifact,
141
- address => Contract.at(address, artifact, this.wallet),
141
+ instance => Contract.at(instance.address, artifact, this.wallet),
142
142
  new Fr(this.salt),
143
143
  constructorArgs,
144
144
  constructorName,
@@ -20,11 +20,9 @@ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
20
20
  import {
21
21
  type ContractClassMetadata,
22
22
  type ContractInstanceWithAddress,
23
- type ContractInstantiationData,
24
23
  type ContractMetadata,
25
24
  computePartialAddress,
26
25
  getContractClassFromArtifact,
27
- getContractInstanceFromInstantiationParams,
28
26
  } from '@aztec/stdlib/contract';
29
27
  import { SimulationError } from '@aztec/stdlib/errors';
30
28
  import { Gas, GasSettings } from '@aztec/stdlib/gas';
@@ -49,7 +47,6 @@ import type {
49
47
  BatchResults,
50
48
  BatchableMethods,
51
49
  BatchedMethod,
52
- ContractInstanceAndArtifact,
53
50
  ProfileOptions,
54
51
  SendOptions,
55
52
  SimulateOptions,
@@ -226,54 +223,38 @@ export abstract class BaseWallet implements Wallet {
226
223
  }
227
224
 
228
225
  async registerContract(
229
- instanceData: AztecAddress | ContractInstanceWithAddress | ContractInstantiationData | ContractInstanceAndArtifact,
226
+ instance: ContractInstanceWithAddress,
230
227
  artifact?: ContractArtifact,
231
228
  secretKey?: Fr,
232
229
  ): Promise<ContractInstanceWithAddress> {
233
- /** Determines if the provided instance data is already a contract instance with an address. */
234
- function isInstanceWithAddress(instanceData: any): instanceData is ContractInstanceWithAddress {
235
- return (instanceData as ContractInstanceWithAddress).address !== undefined;
236
- }
237
- /** Determines if the provided instance data is contract instantiation data */
238
- function isContractInstantiationData(instanceData: any): instanceData is ContractInstantiationData {
239
- return (instanceData as ContractInstantiationData).salt !== undefined;
240
- }
241
- /** Determines if the provided instance data is already a contract */
242
- function isContractInstanceAndArtifact(instanceData: any): instanceData is ContractInstanceAndArtifact {
243
- return (
244
- (instanceData as ContractInstanceAndArtifact).instance !== undefined &&
245
- (instanceData as ContractInstanceAndArtifact).artifact !== undefined
246
- );
247
- }
248
- let instance: ContractInstanceWithAddress;
249
- if (isContractInstanceAndArtifact(instanceData)) {
250
- instance = instanceData.instance;
251
- await this.pxe.registerContract(instanceData);
252
- } else if (isInstanceWithAddress(instanceData)) {
253
- instance = instanceData;
254
- await this.pxe.registerContract({ artifact, instance });
255
- } else if (isContractInstantiationData(instanceData)) {
256
- if (!artifact) {
257
- throw new Error(`Contract artifact must be provided when registering a contract using instantiation data`);
230
+ const { contractInstance: existingInstance } = await this.pxe.getContractMetadata(instance.address);
231
+
232
+ if (existingInstance) {
233
+ // Instance already registered in the wallet
234
+ if (artifact) {
235
+ const thisContractClass = await getContractClassFromArtifact(artifact);
236
+ if (!thisContractClass.id.equals(existingInstance.currentContractClassId)) {
237
+ // wallet holds an outdated version of this contract
238
+ await this.pxe.updateContract(instance.address, artifact);
239
+ instance.currentContractClassId = thisContractClass.id;
240
+ }
258
241
  }
259
- instance = await getContractInstanceFromInstantiationParams(artifact, instanceData);
260
- await this.pxe.registerContract({ artifact, instance });
242
+ // If no artifact provided, we just use the existing registration
261
243
  } else {
244
+ // Instance not registered yet
262
245
  if (!artifact) {
263
- throw new Error(`Contract artifact must be provided when registering a contract using an address`);
264
- }
265
- const { contractInstance: maybeContractInstance } = await this.pxe.getContractMetadata(instanceData);
266
- if (!maybeContractInstance) {
267
- throw new Error(`Contract instance at ${instanceData.toString()} has not been registered in the wallet's PXE`);
268
- }
269
- instance = maybeContractInstance;
270
- const thisContractClass = await getContractClassFromArtifact(artifact);
271
- if (!thisContractClass.id.equals(instance.currentContractClassId)) {
272
- // wallet holds an outdated version of this contract
273
- await this.pxe.updateContract(instance.address, artifact);
274
- instance.currentContractClassId = thisContractClass.id;
246
+ // Try to get the artifact from the wallet's contract class storage
247
+ const classMetadata = await this.pxe.getContractClassMetadata(instance.currentContractClassId, true);
248
+ if (!classMetadata.artifact) {
249
+ throw new Error(
250
+ `Cannot register contract at ${instance.address.toString()}: artifact is required but not provided, and wallet does not have the artifact for contract class ${instance.currentContractClassId.toString()}`,
251
+ );
252
+ }
253
+ artifact = classMetadata.artifact;
275
254
  }
255
+ await this.pxe.registerContract({ artifact, instance });
276
256
  }
257
+
277
258
  if (secretKey) {
278
259
  await this.pxe.registerAccount(secretKey, await computePartialAddress(instance));
279
260
  }
@@ -1,6 +1,7 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
2
  import type { ContractArtifact, FunctionArtifact } from '@aztec/stdlib/abi';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
4
5
  import type { PublicKeys } from '@aztec/stdlib/keys';
5
6
  import { ExecutionPayload, mergeExecutionPayloads } from '@aztec/stdlib/tx';
6
7
 
@@ -44,7 +45,7 @@ export class DeployAccountMethod<TContract extends ContractBase = Contract> exte
44
45
  publicKeys: PublicKeys,
45
46
  wallet: Wallet,
46
47
  artifact: ContractArtifact,
47
- postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>,
48
+ postDeployCtor: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract,
48
49
  private salt: Fr,
49
50
  args: any[] = [],
50
51
  constructorNameOrArtifact?: string | FunctionArtifact,
@@ -16,7 +16,6 @@ import {
16
16
  ContractClassWithIdSchema,
17
17
  type ContractInstanceWithAddress,
18
18
  ContractInstanceWithAddressSchema,
19
- type ContractInstantiationData,
20
19
  type ContractMetadata,
21
20
  } from '@aztec/stdlib/contract';
22
21
  import { Gas } from '@aztec/stdlib/gas';
@@ -35,7 +34,6 @@ import type { ExecutionPayload } from '@aztec/stdlib/tx';
35
34
 
36
35
  import { z } from 'zod';
37
36
 
38
- import type { Contract } from '../contract/contract.js';
39
37
  import type {
40
38
  FeeEstimationOptions,
41
39
  GasSettingsOption,
@@ -59,11 +57,6 @@ export type Aliased<T> = {
59
57
  item: T;
60
58
  };
61
59
 
62
- /**
63
- * A reduced representation of a Contract, only including its instance and artifact
64
- */
65
- export type ContractInstanceAndArtifact = Pick<Contract, 'artifact' | 'instance'>;
66
-
67
60
  /**
68
61
  * Options for simulating interactions with the wallet. Overrides the fee settings of an interaction with
69
62
  * a simplified version that only hints at the wallet wether the interaction contains a
@@ -157,17 +150,9 @@ export type Wallet = {
157
150
  getAddressBook(): Promise<Aliased<AztecAddress>[]>;
158
151
  getAccounts(): Promise<Aliased<AztecAddress>[]>;
159
152
  registerContract(
160
- instanceData: AztecAddress | ContractInstanceWithAddress | ContractInstantiationData | ContractInstanceAndArtifact,
161
- ): Promise<ContractInstanceWithAddress>;
162
- // Overloaded definition to avoid zod issues
163
- registerContract(
164
- instanceData: AztecAddress | ContractInstanceWithAddress | ContractInstantiationData | ContractInstanceAndArtifact,
165
- artifact: ContractArtifact,
166
- ): Promise<ContractInstanceWithAddress>;
167
- registerContract(
168
- instanceData: AztecAddress | ContractInstanceWithAddress | ContractInstantiationData | ContractInstanceAndArtifact,
169
- artifact: ContractArtifact | undefined,
170
- secretKey: Fr | undefined,
153
+ instance: ContractInstanceWithAddress,
154
+ artifact?: ContractArtifact,
155
+ secretKey?: Fr,
171
156
  ): Promise<ContractInstanceWithAddress>;
172
157
  simulateTx(exec: ExecutionPayload, opts: SimulateOptions): Promise<TxSimulationResult>;
173
158
  simulateUtility(
@@ -326,7 +311,7 @@ export const WalletSchema: ApiSchemaFor<Wallet> = {
326
311
  .returns(z.array(z.object({ alias: z.string(), item: schemas.AztecAddress }))),
327
312
  registerContract: z
328
313
  .function()
329
- .args(InstanceDataSchema, optional(ContractArtifactSchema), optional(schemas.Fr))
314
+ .args(ContractInstanceWithAddressSchema, optional(ContractArtifactSchema), optional(schemas.Fr))
330
315
  .returns(ContractInstanceWithAddressSchema),
331
316
  simulateTx: z.function().args(ExecutionPayloadSchema, SimulateOptionsSchema).returns(TxSimulationResult.schema),
332
317
  simulateUtility: z