@aztec/aztec.js 0.0.1-commit.8afd444 → 0.0.1-commit.9117c5f5a

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 (80) hide show
  1. package/dest/api/contract.d.ts +2 -2
  2. package/dest/api/contract.js +2 -2
  3. package/dest/api/deployment.d.ts +1 -2
  4. package/dest/api/deployment.d.ts.map +1 -1
  5. package/dest/api/deployment.js +0 -1
  6. package/dest/api/events.d.ts +10 -6
  7. package/dest/api/events.d.ts.map +1 -1
  8. package/dest/api/events.js +30 -20
  9. package/dest/api/fields.d.ts +2 -1
  10. package/dest/api/fields.d.ts.map +1 -1
  11. package/dest/api/fields.js +1 -0
  12. package/dest/api/wallet.d.ts +2 -2
  13. package/dest/api/wallet.d.ts.map +1 -1
  14. package/dest/api/wallet.js +1 -1
  15. package/dest/contract/batch_call.d.ts +3 -3
  16. package/dest/contract/batch_call.d.ts.map +1 -1
  17. package/dest/contract/batch_call.js +8 -5
  18. package/dest/contract/contract_function_interaction.d.ts +3 -12
  19. package/dest/contract/contract_function_interaction.d.ts.map +1 -1
  20. package/dest/contract/contract_function_interaction.js +10 -7
  21. package/dest/contract/deploy_method.d.ts +19 -6
  22. package/dest/contract/deploy_method.d.ts.map +1 -1
  23. package/dest/contract/deploy_method.js +25 -10
  24. package/dest/contract/get_gas_limits.js +3 -3
  25. package/dest/contract/interaction_options.d.ts +8 -1
  26. package/dest/contract/interaction_options.d.ts.map +1 -1
  27. package/dest/contract/protocol_contracts/auth-registry.d.ts +10 -1
  28. package/dest/contract/protocol_contracts/auth-registry.d.ts.map +1 -1
  29. package/dest/contract/protocol_contracts/auth-registry.js +506 -59
  30. package/dest/contract/protocol_contracts/contract-class-registry.d.ts +2 -13
  31. package/dest/contract/protocol_contracts/contract-class-registry.d.ts.map +1 -1
  32. package/dest/contract/protocol_contracts/contract-class-registry.js +12 -258
  33. package/dest/contract/protocol_contracts/fee-juice.d.ts +1 -1
  34. package/dest/contract/protocol_contracts/fee-juice.d.ts.map +1 -1
  35. package/dest/contract/protocol_contracts/fee-juice.js +8 -0
  36. package/dest/contract/protocol_contracts/multi-call-entrypoint.d.ts +1 -1
  37. package/dest/contract/protocol_contracts/multi-call-entrypoint.d.ts.map +1 -1
  38. package/dest/contract/protocol_contracts/multi-call-entrypoint.js +17 -1
  39. package/dest/contract/protocol_contracts/public-checks.d.ts +1 -1
  40. package/dest/contract/protocol_contracts/public-checks.d.ts.map +1 -1
  41. package/dest/contract/protocol_contracts/public-checks.js +17 -1
  42. package/dest/fee/fee_juice_payment_method_with_claim.js +6 -6
  43. package/dest/fee/private_fee_payment_method.js +10 -10
  44. package/dest/fee/public_fee_payment_method.js +10 -10
  45. package/dest/fee/sponsored_fee_payment.js +3 -3
  46. package/dest/wallet/capabilities.d.ts +13 -5
  47. package/dest/wallet/capabilities.d.ts.map +1 -1
  48. package/dest/wallet/deploy_account_method.d.ts +15 -4
  49. package/dest/wallet/deploy_account_method.d.ts.map +1 -1
  50. package/dest/wallet/deploy_account_method.js +26 -0
  51. package/dest/wallet/wallet.d.ts +297 -89
  52. package/dest/wallet/wallet.d.ts.map +1 -1
  53. package/dest/wallet/wallet.js +35 -25
  54. package/package.json +20 -11
  55. package/src/api/contract.ts +2 -2
  56. package/src/api/deployment.ts +0 -1
  57. package/src/api/events.ts +35 -27
  58. package/src/api/fields.ts +1 -0
  59. package/src/api/wallet.ts +5 -1
  60. package/src/contract/batch_call.ts +7 -12
  61. package/src/contract/contract_function_interaction.ts +17 -7
  62. package/src/contract/deploy_method.ts +48 -14
  63. package/src/contract/get_gas_limits.ts +3 -3
  64. package/src/contract/interaction_options.ts +7 -0
  65. package/src/contract/protocol_contracts/auth-registry.ts +239 -37
  66. package/src/contract/protocol_contracts/contract-class-registry.ts +3 -145
  67. package/src/contract/protocol_contracts/fee-juice.ts +2 -0
  68. package/src/contract/protocol_contracts/multi-call-entrypoint.ts +5 -1
  69. package/src/contract/protocol_contracts/public-checks.ts +5 -1
  70. package/src/fee/fee_juice_payment_method_with_claim.ts +5 -5
  71. package/src/fee/private_fee_payment_method.ts +7 -7
  72. package/src/fee/public_fee_payment_method.ts +8 -8
  73. package/src/fee/sponsored_fee_payment.ts +3 -3
  74. package/src/wallet/capabilities.ts +13 -4
  75. package/src/wallet/deploy_account_method.ts +39 -2
  76. package/src/wallet/wallet.ts +88 -38
  77. package/dest/deployment/broadcast_function.d.ts +0 -24
  78. package/dest/deployment/broadcast_function.d.ts.map +0 -1
  79. package/dest/deployment/broadcast_function.js +0 -74
  80. package/src/deployment/broadcast_function.ts +0 -148
@@ -1,148 +0,0 @@
1
- import {
2
- ARTIFACT_FUNCTION_TREE_MAX_HEIGHT,
3
- CONTRACT_CLASS_REGISTRY_BYTECODE_CAPSULE_SLOT,
4
- MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS,
5
- } from '@aztec/constants';
6
- import { padArrayEnd } from '@aztec/foundation/collection';
7
- import { Fr } from '@aztec/foundation/curves/bn254';
8
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
9
- import { type ContractArtifact, FunctionSelector, FunctionType, bufferAsFields } from '@aztec/stdlib/abi';
10
- import {
11
- computeVerificationKeyHash,
12
- createPrivateFunctionMembershipProof,
13
- createUtilityFunctionMembershipProof,
14
- getContractClassFromArtifact,
15
- } from '@aztec/stdlib/contract';
16
- import { Capsule } from '@aztec/stdlib/tx';
17
-
18
- import type { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
19
- import { ContractClassRegistryContract } from '../contract/protocol_contracts/contract-class-registry.js';
20
- import type { Wallet } from '../wallet/index.js';
21
-
22
- /**
23
- * Sets up a call to broadcast a private function's bytecode via the ClassRegistry contract.
24
- * Note that this is not required for users to call the function, but is rather a convenience to make
25
- * this code publicly available so dapps or wallets do not need to redistribute it.
26
- * @param wallet - Wallet to send the transaction.
27
- * @param artifact - Contract artifact that contains the function to be broadcast.
28
- * @param selector - Selector of the function to be broadcast.
29
- * @returns A ContractFunctionInteraction object that can be used to send the transaction.
30
- */
31
- export async function broadcastPrivateFunction(
32
- wallet: Wallet,
33
- artifact: ContractArtifact,
34
- selector: FunctionSelector,
35
- ): Promise<ContractFunctionInteraction> {
36
- const contractClass = await getContractClassFromArtifact(artifact);
37
- const privateFunctions = artifact.functions.filter(fn => fn.functionType === FunctionType.PRIVATE);
38
- const functionsAndSelectors = await Promise.all(
39
- privateFunctions.map(async fn => ({
40
- f: fn,
41
- selector: await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters),
42
- })),
43
- );
44
- const privateFunctionArtifact = functionsAndSelectors.find(fn => selector.equals(fn.selector))?.f;
45
- if (!privateFunctionArtifact) {
46
- throw new Error(`Private function with selector ${selector.toString()} not found`);
47
- }
48
-
49
- const {
50
- artifactTreeSiblingPath,
51
- artifactTreeLeafIndex,
52
- artifactMetadataHash,
53
- functionMetadataHash,
54
- utilityFunctionsTreeRoot,
55
- privateFunctionTreeSiblingPath,
56
- privateFunctionTreeLeafIndex,
57
- } = await createPrivateFunctionMembershipProof(selector, artifact);
58
-
59
- const vkHash = await computeVerificationKeyHash(privateFunctionArtifact);
60
-
61
- const classRegistry = ContractClassRegistryContract.at(wallet);
62
- const bytecode = bufferAsFields(
63
- privateFunctionArtifact.bytecode,
64
- MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS,
65
- );
66
- return classRegistry.methods
67
- .broadcast_private_function(
68
- contractClass.id,
69
- artifactMetadataHash,
70
- utilityFunctionsTreeRoot,
71
- privateFunctionTreeSiblingPath,
72
- privateFunctionTreeLeafIndex,
73
- padArrayEnd(artifactTreeSiblingPath, Fr.ZERO, ARTIFACT_FUNCTION_TREE_MAX_HEIGHT),
74
- artifactTreeLeafIndex,
75
- // eslint-disable-next-line camelcase
76
- { selector, metadata_hash: functionMetadataHash, vk_hash: vkHash },
77
- )
78
- .with({
79
- capsules: [
80
- new Capsule(
81
- ProtocolContractAddress.ContractClassRegistry,
82
- new Fr(CONTRACT_CLASS_REGISTRY_BYTECODE_CAPSULE_SLOT),
83
- bytecode,
84
- ),
85
- ],
86
- });
87
- }
88
-
89
- /**
90
- * Sets up a call to broadcast a utility function's bytecode via the ClassRegistry contract.
91
- * Note that this is not required for users to call the function, but is rather a convenience to make
92
- * this code publicly available so dapps or wallets do not need to redistribute it.
93
- * @param wallet - Wallet to send the transaction.
94
- * @param artifact - Contract artifact that contains the function to be broadcast.
95
- * @param selector - Selector of the function to be broadcast.
96
- * @returns A ContractFunctionInteraction object that can be used to send the transaction.
97
- */
98
- export async function broadcastUtilityFunction(
99
- wallet: Wallet,
100
- artifact: ContractArtifact,
101
- selector: FunctionSelector,
102
- ): Promise<ContractFunctionInteraction> {
103
- const contractClass = await getContractClassFromArtifact(artifact);
104
- const utilityFunctions = artifact.functions.filter(fn => fn.functionType === FunctionType.UTILITY);
105
- const utilityFunctionsAndSelectors = await Promise.all(
106
- utilityFunctions.map(async fn => ({
107
- f: fn,
108
- selector: await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters),
109
- })),
110
- );
111
- const utilityFunctionArtifact = utilityFunctionsAndSelectors.find(fn => selector.equals(fn.selector))?.f;
112
- if (!utilityFunctionArtifact) {
113
- throw new Error(`Utility function with selector ${selector.toString()} not found`);
114
- }
115
-
116
- const {
117
- artifactMetadataHash,
118
- artifactTreeLeafIndex,
119
- artifactTreeSiblingPath,
120
- functionMetadataHash,
121
- privateFunctionsArtifactTreeRoot,
122
- } = await createUtilityFunctionMembershipProof(selector, artifact);
123
-
124
- const classRegistry = ContractClassRegistryContract.at(wallet);
125
- const bytecode = bufferAsFields(
126
- utilityFunctionArtifact.bytecode,
127
- MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS,
128
- );
129
- return classRegistry.methods
130
- .broadcast_utility_function(
131
- contractClass.id,
132
- artifactMetadataHash,
133
- privateFunctionsArtifactTreeRoot,
134
- padArrayEnd(artifactTreeSiblingPath, Fr.ZERO, ARTIFACT_FUNCTION_TREE_MAX_HEIGHT),
135
- artifactTreeLeafIndex,
136
- // eslint-disable-next-line camelcase
137
- { selector, metadata_hash: functionMetadataHash },
138
- )
139
- .with({
140
- capsules: [
141
- new Capsule(
142
- ProtocolContractAddress.ContractClassRegistry,
143
- new Fr(CONTRACT_CLASS_REGISTRY_BYTECODE_CAPSULE_SLOT),
144
- bytecode,
145
- ),
146
- ],
147
- });
148
- }