@aztec/aztec.js 0.1.0-alpha37 → 0.1.0-alpha38

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 (75) hide show
  1. package/.tsbuildinfo +1 -1
  2. package/README.md +3 -3
  3. package/dest/abis/ecdsa_account_contract.json +2 -2
  4. package/dest/abis/schnorr_account_contract.json +2 -2
  5. package/dest/abis/schnorr_single_key_account_contract.json +1 -1
  6. package/dest/account/account.d.ts +1 -2
  7. package/dest/account/account.d.ts.map +1 -1
  8. package/dest/account/account.js +7 -6
  9. package/dest/account/contract/ecdsa_account_contract.d.ts +1 -2
  10. package/dest/account/contract/ecdsa_account_contract.d.ts.map +1 -1
  11. package/dest/account/contract/ecdsa_account_contract.js +1 -1
  12. package/dest/account/contract/index.d.ts +1 -2
  13. package/dest/account/contract/index.d.ts.map +1 -1
  14. package/dest/account/contract/index.js +1 -1
  15. package/dest/account/contract/schnorr_account_contract.d.ts +1 -2
  16. package/dest/account/contract/schnorr_account_contract.d.ts.map +1 -1
  17. package/dest/account/contract/schnorr_account_contract.js +1 -1
  18. package/dest/account/contract/single_key_account_contract.d.ts +1 -2
  19. package/dest/account/contract/single_key_account_contract.d.ts.map +1 -1
  20. package/dest/account/contract/single_key_account_contract.js +1 -1
  21. package/dest/account/index.d.ts +1 -2
  22. package/dest/account/index.d.ts.map +1 -1
  23. package/dest/account/index.js +7 -3
  24. package/dest/aztec_rpc_client/aztec_rpc_client.d.ts.map +1 -1
  25. package/dest/aztec_rpc_client/aztec_rpc_client.js +3 -2
  26. package/dest/aztec_rpc_client/wallet.d.ts +7 -5
  27. package/dest/aztec_rpc_client/wallet.d.ts.map +1 -1
  28. package/dest/aztec_rpc_client/wallet.js +14 -8
  29. package/dest/contract/contract.d.ts +1 -1
  30. package/dest/contract/contract.d.ts.map +1 -1
  31. package/dest/contract/contract.js +2 -2
  32. package/dest/contract/contract.test.js +14 -13
  33. package/dest/contract_deployer/deploy_method.js +6 -6
  34. package/dest/contract_deployer/deploy_sent_tx.js +2 -2
  35. package/dest/index.d.ts +2 -0
  36. package/dest/index.d.ts.map +1 -1
  37. package/dest/index.js +3 -1
  38. package/dest/main.js +1 -1
  39. package/dest/sandbox/index.d.ts +108 -0
  40. package/dest/sandbox/index.d.ts.map +1 -0
  41. package/dest/sandbox/index.js +66 -0
  42. package/dest/utils/abi_types.d.ts +6 -0
  43. package/dest/utils/abi_types.d.ts.map +1 -0
  44. package/dest/utils/abi_types.js +2 -0
  45. package/dest/utils/account.d.ts +5 -2
  46. package/dest/utils/account.d.ts.map +1 -1
  47. package/dest/utils/account.js +21 -12
  48. package/dest/utils/index.d.ts +1 -0
  49. package/dest/utils/index.d.ts.map +1 -1
  50. package/dest/utils/index.js +2 -1
  51. package/package.json +4 -4
  52. package/src/abis/ecdsa_account_contract.json +2 -2
  53. package/src/abis/schnorr_account_contract.json +2 -2
  54. package/src/abis/schnorr_single_key_account_contract.json +1 -1
  55. package/src/account/account.ts +6 -6
  56. package/src/account/contract/ecdsa_account_contract.ts +1 -2
  57. package/src/account/contract/index.ts +1 -2
  58. package/src/account/contract/schnorr_account_contract.ts +1 -2
  59. package/src/account/contract/single_key_account_contract.ts +1 -2
  60. package/src/account/index.ts +5 -4
  61. package/src/aztec_rpc_client/aztec_rpc_client.ts +2 -1
  62. package/src/aztec_rpc_client/wallet.ts +15 -13
  63. package/src/contract/contract.test.ts +13 -12
  64. package/src/contract/contract.ts +1 -1
  65. package/src/contract_deployer/deploy_method.ts +5 -5
  66. package/src/contract_deployer/deploy_sent_tx.ts +1 -1
  67. package/src/index.ts +2 -0
  68. package/src/sandbox/index.ts +83 -0
  69. package/src/utils/abi_types.ts +4 -0
  70. package/src/utils/account.ts +36 -16
  71. package/src/utils/index.ts +1 -0
  72. package/dest/account/complete_address.d.ts +0 -13
  73. package/dest/account/complete_address.d.ts.map +0 -1
  74. package/dest/account/complete_address.js +0 -8
  75. package/src/account/complete_address.ts +0 -18
@@ -72,7 +72,7 @@
72
72
  }
73
73
  ],
74
74
  "returnTypes": [],
75
- "bytecode": "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",
75
+ "bytecode": "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",
76
76
  "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"
77
77
  },
78
78
  {
@@ -140,7 +140,7 @@
140
140
  }
141
141
  ],
142
142
  "returnTypes": [],
143
- "bytecode": "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",
143
+ "bytecode": "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",
144
144
  "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"
145
145
  }
146
146
  ]
@@ -95,7 +95,7 @@
95
95
  }
96
96
  ],
97
97
  "returnTypes": [],
98
- "bytecode": "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",
98
+ "bytecode": "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",
99
99
  "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"
100
100
  }
101
101
  ]
@@ -1,8 +1,7 @@
1
1
  import { Fr, PublicKey, getContractDeploymentInfo } from '@aztec/circuits.js';
2
- import { AztecRPC, PrivateKey } from '@aztec/types';
2
+ import { AztecRPC, CompleteAddress, PrivateKey } from '@aztec/types';
3
3
 
4
4
  import { AccountWallet, ContractDeployer, DeployMethod, WaitOpts, generatePublicKey } from '../index.js';
5
- import { CompleteAddress, isCompleteAddress } from './complete_address.js';
6
5
  import { DeployAccountSentTx } from './deploy_account_sent_tx.js';
7
6
  import { AccountContract, Entrypoint, Salt } from './index.js';
8
7
 
@@ -24,7 +23,7 @@ export class Account {
24
23
  private accountContract: AccountContract,
25
24
  saltOrAddress?: Salt | CompleteAddress,
26
25
  ) {
27
- if (isCompleteAddress(saltOrAddress)) {
26
+ if (saltOrAddress instanceof CompleteAddress) {
28
27
  this.completeAddress = saltOrAddress;
29
28
  } else {
30
29
  this.salt = saltOrAddress ? new Fr(saltOrAddress) : Fr.random();
@@ -56,12 +55,13 @@ export class Account {
56
55
  public async getCompleteAddress(): Promise<CompleteAddress> {
57
56
  if (!this.completeAddress) {
58
57
  const encryptionPublicKey = await generatePublicKey(this.encryptionPrivateKey);
59
- this.completeAddress = await getContractDeploymentInfo(
58
+ const contractDeploymentInfo = await getContractDeploymentInfo(
60
59
  this.accountContract.getContractAbi(),
61
60
  await this.accountContract.getDeploymentArgs(),
62
61
  this.salt!,
63
62
  encryptionPublicKey,
64
63
  );
64
+ this.completeAddress = contractDeploymentInfo.completeAddress;
65
65
  }
66
66
  return this.completeAddress;
67
67
  }
@@ -83,8 +83,8 @@ export class Account {
83
83
  * @returns A Wallet instance.
84
84
  */
85
85
  public async register(): Promise<AccountWallet> {
86
- const { address, partialAddress } = await this.getCompleteAddress();
87
- await this.rpc.addAccount(this.encryptionPrivateKey, address, partialAddress);
86
+ const completeAddress = await this.getCompleteAddress();
87
+ await this.rpc.registerAccount(this.encryptionPrivateKey, completeAddress);
88
88
  return this.getWallet();
89
89
  }
90
90
 
@@ -1,9 +1,8 @@
1
1
  import { Ecdsa } from '@aztec/circuits.js/barretenberg';
2
2
  import { ContractAbi } from '@aztec/foundation/abi';
3
- import { NodeInfo, PrivateKey } from '@aztec/types';
3
+ import { CompleteAddress, NodeInfo, PrivateKey } from '@aztec/types';
4
4
 
5
5
  import EcdsaAccountContractAbi from '../../abis/ecdsa_account_contract.json' assert { type: 'json' };
6
- import { CompleteAddress } from '../complete_address.js';
7
6
  import { StoredKeyAccountEntrypoint } from '../entrypoint/stored_key_account_entrypoint.js';
8
7
  import { AccountContract } from './index.js';
9
8
 
@@ -1,8 +1,7 @@
1
1
  import { ContractAbi } from '@aztec/foundation/abi';
2
- import { NodeInfo } from '@aztec/types';
2
+ import { CompleteAddress, NodeInfo } from '@aztec/types';
3
3
 
4
4
  import { Entrypoint } from '../index.js';
5
- import { CompleteAddress } from './../complete_address.js';
6
5
 
7
6
  export * from './ecdsa_account_contract.js';
8
7
  export * from './schnorr_account_contract.js';
@@ -1,9 +1,8 @@
1
1
  import { Schnorr } from '@aztec/circuits.js/barretenberg';
2
2
  import { ContractAbi } from '@aztec/foundation/abi';
3
- import { NodeInfo, PrivateKey } from '@aztec/types';
3
+ import { CompleteAddress, NodeInfo, PrivateKey } from '@aztec/types';
4
4
 
5
5
  import SchnorrAccountContractAbi from '../../abis/schnorr_account_contract.json' assert { type: 'json' };
6
- import { CompleteAddress } from '../complete_address.js';
7
6
  import { StoredKeyAccountEntrypoint } from '../entrypoint/stored_key_account_entrypoint.js';
8
7
  import { AccountContract } from './index.js';
9
8
 
@@ -1,9 +1,8 @@
1
1
  import { Schnorr } from '@aztec/circuits.js/barretenberg';
2
2
  import { ContractAbi } from '@aztec/foundation/abi';
3
- import { NodeInfo, PrivateKey } from '@aztec/types';
3
+ import { CompleteAddress, NodeInfo, PrivateKey } from '@aztec/types';
4
4
 
5
5
  import SchnorrSingleKeyAccountContractAbi from '../../abis/schnorr_single_key_account_contract.json' assert { type: 'json' };
6
- import { CompleteAddress } from '../complete_address.js';
7
6
  import { SingleKeyAccountEntrypoint } from '../entrypoint/single_key_account_entrypoint.js';
8
7
  import { AccountContract } from './index.js';
9
8
 
@@ -1,8 +1,7 @@
1
- import { AztecRPC, PrivateKey } from '@aztec/types';
1
+ import { AztecRPC, CompleteAddress, PrivateKey } from '@aztec/types';
2
2
 
3
3
  import { AccountContract, AccountWallet, AztecAddress, Fr } from '../index.js';
4
4
  import { Account } from './account.js';
5
- import { CompleteAddress } from './complete_address.js';
6
5
  import { EcdsaAccountContract } from './contract/ecdsa_account_contract.js';
7
6
  import { SchnorrAccountContract } from './contract/schnorr_account_contract.js';
8
7
  import { SingleKeyAccountContract } from './contract/single_key_account_contract.js';
@@ -93,9 +92,11 @@ export async function getWallet(
93
92
  address: AztecAddress,
94
93
  accountContract: AccountContract,
95
94
  ): Promise<AccountWallet> {
96
- const [publicKey, partialAddress] = await rpc.getPublicKeyAndPartialAddress(address);
95
+ const completeAddress = await rpc.getAccount(address);
96
+ if (!completeAddress) {
97
+ throw new Error(`Account ${address} not found`);
98
+ }
97
99
  const nodeInfo = await rpc.getNodeInfo();
98
- const completeAddress: CompleteAddress = { publicKey, partialAddress, address };
99
100
  const entrypoint = await accountContract.getEntrypoint(completeAddress, nodeInfo);
100
101
  return new AccountWallet(rpc, entrypoint, completeAddress);
101
102
  }
@@ -1,4 +1,4 @@
1
- import { AztecAddress, EthAddress, Fr, Point, PrivateKey } from '@aztec/circuits.js';
1
+ import { AztecAddress, CompleteAddress, EthAddress, Fr, Point, PrivateKey } from '@aztec/circuits.js';
2
2
  import { createJsonRpcClient, defaultFetch } from '@aztec/foundation/json-rpc/client';
3
3
  import {
4
4
  AztecRPC,
@@ -18,6 +18,7 @@ export const createAztecRpcClient = (url: string, fetch = defaultFetch): AztecRP
18
18
  createJsonRpcClient<AztecRPC>(
19
19
  url,
20
20
  {
21
+ CompleteAddress,
21
22
  AztecAddress,
22
23
  TxExecutionRequest,
23
24
  ContractData,
@@ -1,4 +1,4 @@
1
- import { AztecAddress, CircuitsWasm, Fr, PartialAddress, PrivateKey, PublicKey, TxContext } from '@aztec/circuits.js';
1
+ import { AztecAddress, CircuitsWasm, Fr, PrivateKey, TxContext } from '@aztec/circuits.js';
2
2
  import {
3
3
  AztecRPC,
4
4
  ContractData,
@@ -31,19 +31,24 @@ export abstract class BaseWallet implements Wallet {
31
31
 
32
32
  abstract createTxExecutionRequest(execs: FunctionCall[], opts?: CreateTxRequestOpts): Promise<TxExecutionRequest>;
33
33
 
34
- addAccount(privKey: PrivateKey, address: AztecAddress, partialAddress: Fr): Promise<AztecAddress> {
35
- return this.rpc.addAccount(privKey, address, partialAddress);
34
+ registerAccount(privKey: PrivateKey, completeAddress: CompleteAddress): Promise<void> {
35
+ return this.rpc.registerAccount(privKey, completeAddress);
36
36
  }
37
- addPublicKeyAndPartialAddress(
38
- address: AztecAddress,
39
- publicKey: PublicKey,
40
- partialAddress: PartialAddress,
41
- ): Promise<void> {
42
- return this.rpc.addPublicKeyAndPartialAddress(address, publicKey, partialAddress);
37
+ registerRecipient(account: CompleteAddress): Promise<void> {
38
+ return this.rpc.registerRecipient(account);
43
39
  }
44
- getAccounts(): Promise<AztecAddress[]> {
40
+ getAccounts(): Promise<CompleteAddress[]> {
45
41
  return this.rpc.getAccounts();
46
42
  }
43
+ getAccount(address: AztecAddress): Promise<CompleteAddress | undefined> {
44
+ return this.rpc.getAccount(address);
45
+ }
46
+ getRecipients(): Promise<CompleteAddress[]> {
47
+ return this.rpc.getRecipients();
48
+ }
49
+ getRecipient(address: AztecAddress): Promise<CompleteAddress | undefined> {
50
+ return this.rpc.getRecipient(address);
51
+ }
47
52
  addContracts(contracts: DeployedContract[]): Promise<void> {
48
53
  return this.rpc.addContracts(contracts);
49
54
  }
@@ -77,9 +82,6 @@ export abstract class BaseWallet implements Wallet {
77
82
  getNodeInfo(): Promise<NodeInfo> {
78
83
  return this.rpc.getNodeInfo();
79
84
  }
80
- getPublicKeyAndPartialAddress(address: AztecAddress): Promise<[PublicKey, PartialAddress]> {
81
- return this.rpc.getPublicKeyAndPartialAddress(address);
82
- }
83
85
  isGlobalStateSynchronised() {
84
86
  return this.rpc.isGlobalStateSynchronised();
85
87
  }
@@ -1,4 +1,4 @@
1
- import { AztecAddress, EthAddress } from '@aztec/circuits.js';
1
+ import { AztecAddress, CompleteAddress, EthAddress } from '@aztec/circuits.js';
2
2
  import { ABIParameterVisibility, ContractAbi, FunctionType } from '@aztec/foundation/abi';
3
3
  import { randomBytes } from '@aztec/foundation/crypto';
4
4
  import { ContractData, DeployedContract, NodeInfo, Tx, TxExecutionRequest, TxHash, TxReceipt } from '@aztec/types';
@@ -12,7 +12,7 @@ describe('Contract Class', () => {
12
12
  let wallet: MockProxy<Wallet>;
13
13
 
14
14
  const contractAddress = AztecAddress.random();
15
- const account = AztecAddress.random();
15
+ let account: CompleteAddress;
16
16
 
17
17
  const mockTx = { type: 'Tx' } as any as Tx;
18
18
  const mockTxRequest = { type: 'TxRequest' } as any as TxExecutionRequest;
@@ -91,7 +91,8 @@ describe('Contract Class', () => {
91
91
  portalContract: EthAddress.random(),
92
92
  });
93
93
 
94
- beforeEach(() => {
94
+ beforeEach(async () => {
95
+ account = await CompleteAddress.random();
95
96
  wallet = mock<Wallet>();
96
97
  wallet.createTxExecutionRequest.mockResolvedValue(mockTxRequest);
97
98
  wallet.getContractData.mockResolvedValue(ContractData.random());
@@ -104,11 +105,11 @@ describe('Contract Class', () => {
104
105
  });
105
106
 
106
107
  it('should create and send a contract method tx', async () => {
107
- const fooContract = await Contract.create(contractAddress, defaultAbi, wallet);
108
+ const fooContract = await Contract.at(contractAddress, defaultAbi, wallet);
108
109
  const param0 = 12;
109
110
  const param1 = 345n;
110
111
  const sentTx = fooContract.methods.bar(param0, param1).send({
111
- origin: account,
112
+ origin: account.address,
112
113
  });
113
114
  const txHash = await sentTx.getTxHash();
114
115
  const receipt = await sentTx.getReceipt();
@@ -121,29 +122,29 @@ describe('Contract Class', () => {
121
122
  });
122
123
 
123
124
  it('should call view on an unconstrained function', async () => {
124
- const fooContract = await Contract.create(contractAddress, defaultAbi, wallet);
125
+ const fooContract = await Contract.at(contractAddress, defaultAbi, wallet);
125
126
  const result = await fooContract.methods.qux(123n).view({
126
- from: account,
127
+ from: account.address,
127
128
  });
128
129
  expect(wallet.viewTx).toHaveBeenCalledTimes(1);
129
- expect(wallet.viewTx).toHaveBeenCalledWith('qux', [123n], contractAddress, account);
130
+ expect(wallet.viewTx).toHaveBeenCalledWith('qux', [123n], contractAddress, account.address);
130
131
  expect(result).toBe(mockViewResultValue);
131
132
  });
132
133
 
133
134
  it('should not call create on an unconstrained function', async () => {
134
- const fooContract = await Contract.create(contractAddress, defaultAbi, wallet);
135
- await expect(fooContract.methods.qux().create({ origin: account })).rejects.toThrow();
135
+ const fooContract = await Contract.at(contractAddress, defaultAbi, wallet);
136
+ await expect(fooContract.methods.qux().create({ origin: account.address })).rejects.toThrow();
136
137
  });
137
138
 
138
139
  it('should not call view on a secret or open function', async () => {
139
- const fooContract = await Contract.create(contractAddress, defaultAbi, wallet);
140
+ const fooContract = await Contract.at(contractAddress, defaultAbi, wallet);
140
141
  expect(() => fooContract.methods.bar().view()).toThrow();
141
142
  expect(() => fooContract.methods.baz().view()).toThrow();
142
143
  });
143
144
 
144
145
  it('should add contract and dependencies to aztec rpc', async () => {
145
146
  const entry = randomDeployContract();
146
- const contract = await Contract.create(entry.address, entry.abi, wallet);
147
+ const contract = await Contract.at(entry.address, entry.abi, wallet);
147
148
 
148
149
  {
149
150
  await contract.attach(entry.portalContract);
@@ -20,7 +20,7 @@ export class Contract extends ContractBase {
20
20
  * @param wallet - The wallet to use when interacting with the contract.
21
21
  * @returns A promise that resolves to a new Contract instance.
22
22
  */
23
- public static async create(address: AztecAddress, abi: ContractAbi, wallet: Wallet): Promise<Contract> {
23
+ public static async at(address: AztecAddress, abi: ContractAbi, wallet: Wallet): Promise<Contract> {
24
24
  if (!(await isContractDeployed(wallet, address))) {
25
25
  throw new Error('Contract ' + address.toString() + ' is not deployed');
26
26
  }
@@ -66,7 +66,7 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
66
66
 
67
67
  const { chainId, version } = await this.rpc.getNodeInfo();
68
68
 
69
- const { address, constructorHash, functionTreeRoot, partialAddress } = await getContractDeploymentInfo(
69
+ const { completeAddress, constructorHash, functionTreeRoot } = await getContractDeploymentInfo(
70
70
  this.abi,
71
71
  this.args,
72
72
  contractAddressSalt,
@@ -84,7 +84,7 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
84
84
  const txContext = new TxContext(false, false, true, contractDeploymentData, new Fr(chainId), new Fr(version));
85
85
  const args = encodeArguments(this.constructorAbi, this.args);
86
86
  const functionData = FunctionData.fromAbi(this.constructorAbi);
87
- const execution = { args, functionData, to: address };
87
+ const execution = { args, functionData, to: completeAddress.address };
88
88
  const packedArguments = await PackedArguments.fromArgs(execution.args);
89
89
 
90
90
  const txRequest = TxExecutionRequest.from({
@@ -96,11 +96,11 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
96
96
  });
97
97
 
98
98
  this.txRequest = txRequest;
99
- this.partialAddress = partialAddress;
100
- this.completeContractAddress = address;
99
+ this.partialAddress = completeAddress.partialAddress;
100
+ this.completeContractAddress = completeAddress.address;
101
101
 
102
102
  // TODO: Should we add the contracts to the DB here, or once the tx has been sent or mined?
103
- await this.rpc.addContracts([{ abi: this.abi, address, portalContract }]);
103
+ await this.rpc.addContracts([{ abi: this.abi, address: completeAddress.address, portalContract }]);
104
104
 
105
105
  return this.txRequest;
106
106
  }
@@ -50,6 +50,6 @@ export class DeploySentTx<TContract extends ContractBase = Contract> extends Sen
50
50
  const contractWallet = wallet ?? (isWallet(this.arc) && this.arc);
51
51
  if (!contractWallet) throw new Error(`A wallet is required for creating a contract instance`);
52
52
  if (!address) throw new Error(`Contract address is missing from transaction receipt`);
53
- return Contract.create(address, this.abi, contractWallet) as Promise<TContract>;
53
+ return Contract.at(address, this.abi, contractWallet) as Promise<TContract>;
54
54
  }
55
55
  }
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ export * from './utils/index.js';
4
4
  export * from './aztec_rpc_client/index.js';
5
5
  export * from './account/index.js';
6
6
  export * from './contract_deployer/deploy_method.js';
7
+ export * from './sandbox/index.js';
7
8
 
8
9
  export { AztecAddress, EthAddress, Point, Fr } from '@aztec/circuits.js';
9
10
  export {
@@ -27,3 +28,4 @@ export {
27
28
  } from '@aztec/types';
28
29
 
29
30
  export { createDebugLogger } from '@aztec/foundation/log';
31
+ export { sleep } from '@aztec/foundation/sleep';