@aztec/aztec.js 0.73.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dest/account/contract.js +5 -3
- package/dest/account/index.js +8 -2
- package/dest/account/interface.js +4 -3
- package/dest/account/wallet.js +3 -2
- package/dest/account_manager/deploy_account_method.js +22 -25
- package/dest/account_manager/deploy_account_sent_tx.js +16 -17
- package/dest/account_manager/index.js +67 -78
- package/dest/api/abi.js +0 -1
- package/dest/api/account.js +0 -1
- package/dest/api/addresses.js +0 -1
- package/dest/api/cheat_codes.js +25 -0
- package/dest/api/deployment.js +0 -1
- package/dest/api/entrypoint.js +0 -1
- package/dest/api/eth_address.js +0 -1
- package/dest/api/ethereum/anvil_test_watcher.js +113 -0
- package/dest/api/ethereum/chain_monitor.js +69 -0
- package/dest/api/ethereum/cheat_codes.js +142 -0
- package/dest/api/ethereum/index.js +6 -0
- package/dest/api/ethereum/l1_contracts.js +13 -0
- package/dest/api/ethereum/portal_manager.js +284 -0
- package/dest/api/fee.js +0 -1
- package/dest/api/fields.js +0 -1
- package/dest/api/interfaces/pxe.js +1 -2
- package/dest/api/log.js +1 -0
- package/dest/api/log_id.js +0 -1
- package/dest/api/tx_hash.js +0 -1
- package/dest/api/wallet.js +1 -2
- package/dest/contract/base_contract_interaction.js +75 -52
- package/dest/contract/batch_call.js +57 -39
- package/dest/contract/checker.js +29 -20
- package/dest/contract/contract.js +22 -27
- package/dest/contract/contract_base.js +21 -30
- package/dest/contract/contract_function_interaction.js +48 -48
- package/dest/contract/deploy_method.js +99 -84
- package/dest/contract/deploy_proven_tx.js +8 -11
- package/dest/contract/deploy_sent_tx.js +19 -22
- package/dest/contract/get_gas_limits.js +2 -4
- package/dest/contract/index.js +4 -6
- package/dest/contract/proven_tx.js +7 -10
- package/dest/contract/sent_tx.js +32 -34
- package/dest/contract/unsafe_contract.js +2 -10
- package/dest/deployment/broadcast_function.js +28 -26
- package/dest/deployment/contract_deployer.js +15 -14
- package/dest/deployment/deploy_instance.js +1 -3
- package/dest/deployment/index.js +0 -1
- package/dest/deployment/protocol_contracts.js +2 -5
- package/dest/deployment/register_class.js +8 -8
- package/dest/entrypoint/default_entrypoint.js +8 -5
- package/dest/entrypoint/default_multi_call_entrypoint.js +66 -23
- package/dest/entrypoint/entrypoint.js +0 -1
- package/dest/entrypoint/payload.js +73 -82
- package/dest/fee/fee_juice_payment_method.js +3 -4
- package/dest/fee/fee_juice_payment_method_with_claim.js +11 -14
- package/dest/fee/fee_payment_method.js +3 -2
- package/dest/fee/no_fee_payment_method.js +2 -4
- package/dest/fee/private_fee_payment_method.js +36 -34
- package/dest/fee/public_fee_payment_method.js +34 -31
- package/dest/index.js +8 -9
- package/dest/rpc_clients/index.js +0 -1
- package/dest/rpc_clients/node/index.js +30 -16
- package/dest/rpc_clients/pxe_client.js +5 -3
- package/dest/utils/abi_types.js +1 -2
- package/dest/utils/authwit.js +15 -15
- package/dest/utils/aztec_cheatcodes.js +62 -0
- package/dest/utils/field_compressed_string.js +2 -4
- package/dest/utils/index.js +5 -12
- package/dest/utils/node.js +4 -5
- package/dest/utils/pub_key.js +1 -3
- package/dest/utils/pxe.js +3 -5
- package/dest/wallet/account_wallet.js +118 -81
- package/dest/wallet/account_wallet_with_private_key.js +9 -15
- package/dest/wallet/base_wallet.js +7 -5
- package/dest/wallet/index.js +2 -4
- package/dest/wallet/signerless_wallet.js +4 -6
- package/package.json +14 -17
- package/src/api/account.ts +7 -1
- package/src/api/cheat_codes.ts +35 -0
- package/src/{utils → api/ethereum}/anvil_test_watcher.ts +2 -1
- package/src/{utils → api/ethereum}/cheat_codes.ts +6 -109
- package/src/api/ethereum/index.ts +15 -0
- package/src/{utils → api/ethereum}/l1_contracts.ts +1 -1
- package/src/{utils → api/ethereum}/portal_manager.ts +4 -9
- package/src/api/interfaces/pxe.ts +1 -1
- package/src/api/log.ts +1 -0
- package/src/api/wallet.ts +1 -1
- package/src/contract/contract_function_interaction.ts +1 -1
- package/src/contract/index.ts +2 -2
- package/src/entrypoint/default_multi_call_entrypoint.ts +2 -1
- package/src/entrypoint/entrypoint.ts +1 -1
- package/src/fee/fee_juice_payment_method_with_claim.ts +1 -1
- package/src/index.ts +7 -35
- package/src/utils/aztec_cheatcodes.ts +75 -0
- package/src/utils/index.ts +19 -11
- package/src/utils/node.ts +2 -0
- package/src/wallet/index.ts +1 -1
- package/dest/account/contract.d.ts +0 -33
- package/dest/account/contract.d.ts.map +0 -1
- package/dest/account/index.d.ts +0 -15
- package/dest/account/index.d.ts.map +0 -1
- package/dest/account/interface.d.ts +0 -30
- package/dest/account/interface.d.ts.map +0 -1
- package/dest/account/wallet.d.ts +0 -10
- package/dest/account/wallet.d.ts.map +0 -1
- package/dest/account_manager/deploy_account_method.d.ts +0 -15
- package/dest/account_manager/deploy_account_method.d.ts.map +0 -1
- package/dest/account_manager/deploy_account_sent_tx.d.ts +0 -29
- package/dest/account_manager/deploy_account_sent_tx.d.ts.map +0 -1
- package/dest/account_manager/index.d.ts +0 -99
- package/dest/account_manager/index.d.ts.map +0 -1
- package/dest/api/abi.d.ts +0 -4
- package/dest/api/abi.d.ts.map +0 -1
- package/dest/api/account.d.ts +0 -4
- package/dest/api/account.d.ts.map +0 -1
- package/dest/api/addresses.d.ts +0 -3
- package/dest/api/addresses.d.ts.map +0 -1
- package/dest/api/deployment.d.ts +0 -4
- package/dest/api/deployment.d.ts.map +0 -1
- package/dest/api/entrypoint.d.ts +0 -2
- package/dest/api/entrypoint.d.ts.map +0 -1
- package/dest/api/eth_address.d.ts +0 -2
- package/dest/api/eth_address.d.ts.map +0 -1
- package/dest/api/ethereum.d.ts +0 -3
- package/dest/api/ethereum.d.ts.map +0 -1
- package/dest/api/ethereum.js +0 -3
- package/dest/api/fee.d.ts +0 -7
- package/dest/api/fee.d.ts.map +0 -1
- package/dest/api/fields.d.ts +0 -2
- package/dest/api/fields.d.ts.map +0 -1
- package/dest/api/interfaces/pxe.d.ts +0 -2
- package/dest/api/interfaces/pxe.d.ts.map +0 -1
- package/dest/api/log_id.d.ts +0 -2
- package/dest/api/log_id.d.ts.map +0 -1
- package/dest/api/tx_hash.d.ts +0 -2
- package/dest/api/tx_hash.d.ts.map +0 -1
- package/dest/api/wallet.d.ts +0 -2
- package/dest/api/wallet.d.ts.map +0 -1
- package/dest/barretenberg-threads.wasm.gz +0 -0
- package/dest/barretenberg.wasm.gz +0 -0
- package/dest/contract/base_contract_interaction.d.ts +0 -82
- package/dest/contract/base_contract_interaction.d.ts.map +0 -1
- package/dest/contract/batch_call.d.ts +0 -27
- package/dest/contract/batch_call.d.ts.map +0 -1
- package/dest/contract/checker.d.ts +0 -11
- package/dest/contract/checker.d.ts.map +0 -1
- package/dest/contract/contract.d.ts +0 -41
- package/dest/contract/contract.d.ts.map +0 -1
- package/dest/contract/contract_base.d.ts +0 -61
- package/dest/contract/contract_base.d.ts.map +0 -1
- package/dest/contract/contract_function_interaction.d.ts +0 -67
- package/dest/contract/contract_function_interaction.d.ts.map +0 -1
- package/dest/contract/deploy_method.d.ts +0 -110
- package/dest/contract/deploy_method.d.ts.map +0 -1
- package/dest/contract/deploy_proven_tx.d.ts +0 -19
- package/dest/contract/deploy_proven_tx.d.ts.map +0 -1
- package/dest/contract/deploy_sent_tx.d.ts +0 -43
- package/dest/contract/deploy_sent_tx.d.ts.map +0 -1
- package/dest/contract/get_gas_limits.d.ts +0 -18
- package/dest/contract/get_gas_limits.d.ts.map +0 -1
- package/dest/contract/index.d.ts +0 -45
- package/dest/contract/index.d.ts.map +0 -1
- package/dest/contract/proven_tx.d.ts +0 -16
- package/dest/contract/proven_tx.d.ts.map +0 -1
- package/dest/contract/sent_tx.d.ts +0 -60
- package/dest/contract/sent_tx.d.ts.map +0 -1
- package/dest/contract/unsafe_contract.d.ts +0 -15
- package/dest/contract/unsafe_contract.d.ts.map +0 -1
- package/dest/deployment/broadcast_function.d.ts +0 -24
- package/dest/deployment/broadcast_function.d.ts.map +0 -1
- package/dest/deployment/contract_deployer.d.ts +0 -27
- package/dest/deployment/contract_deployer.d.ts.map +0 -1
- package/dest/deployment/deploy_instance.d.ts +0 -10
- package/dest/deployment/deploy_instance.d.ts.map +0 -1
- package/dest/deployment/index.d.ts +0 -2
- package/dest/deployment/index.d.ts.map +0 -1
- package/dest/deployment/protocol_contracts.d.ts +0 -7
- package/dest/deployment/protocol_contracts.d.ts.map +0 -1
- package/dest/deployment/register_class.d.ts +0 -6
- package/dest/deployment/register_class.d.ts.map +0 -1
- package/dest/entrypoint/default_entrypoint.d.ts +0 -12
- package/dest/entrypoint/default_entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts +0 -15
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/entrypoint.d.ts +0 -31
- package/dest/entrypoint/entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/payload.d.ts +0 -125
- package/dest/entrypoint/payload.d.ts.map +0 -1
- package/dest/fee/fee_juice_payment_method.d.ts +0 -14
- package/dest/fee/fee_juice_payment_method.d.ts.map +0 -1
- package/dest/fee/fee_juice_payment_method_with_claim.d.ts +0 -17
- package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +0 -1
- package/dest/fee/fee_payment_method.d.ts +0 -22
- package/dest/fee/fee_payment_method.d.ts.map +0 -1
- package/dest/fee/no_fee_payment_method.d.ts +0 -13
- package/dest/fee/no_fee_payment_method.d.ts.map +0 -1
- package/dest/fee/private_fee_payment_method.d.ts +0 -51
- package/dest/fee/private_fee_payment_method.d.ts.map +0 -1
- package/dest/fee/public_fee_payment_method.d.ts +0 -41
- package/dest/fee/public_fee_payment_method.d.ts.map +0 -1
- package/dest/index.d.ts +0 -51
- package/dest/index.d.ts.map +0 -1
- package/dest/main.js +0 -2
- package/dest/main.js.LICENSE.txt +0 -25
- package/dest/rpc_clients/index.d.ts +0 -3
- package/dest/rpc_clients/index.d.ts.map +0 -1
- package/dest/rpc_clients/node/index.d.ts +0 -11
- package/dest/rpc_clients/node/index.d.ts.map +0 -1
- package/dest/rpc_clients/pxe_client.d.ts +0 -9
- package/dest/rpc_clients/pxe_client.d.ts.map +0 -1
- package/dest/utils/abi_types.d.ts +0 -26
- package/dest/utils/abi_types.d.ts.map +0 -1
- package/dest/utils/anvil_test_watcher.d.ts +0 -28
- package/dest/utils/anvil_test_watcher.d.ts.map +0 -1
- package/dest/utils/anvil_test_watcher.js +0 -108
- package/dest/utils/authwit.d.ts +0 -59
- package/dest/utils/authwit.d.ts.map +0 -1
- package/dest/utils/chain_monitor.d.ts +0 -21
- package/dest/utils/chain_monitor.d.ts.map +0 -1
- package/dest/utils/chain_monitor.js +0 -58
- package/dest/utils/cheat_codes.d.ts +0 -137
- package/dest/utils/cheat_codes.d.ts.map +0 -1
- package/dest/utils/cheat_codes.js +0 -225
- package/dest/utils/field_compressed_string.d.ts +0 -17
- package/dest/utils/field_compressed_string.d.ts.map +0 -1
- package/dest/utils/index.d.ts +0 -12
- package/dest/utils/index.d.ts.map +0 -1
- package/dest/utils/l1_contracts.d.ts +0 -3
- package/dest/utils/l1_contracts.d.ts.map +0 -1
- package/dest/utils/l1_contracts.js +0 -15
- package/dest/utils/node.d.ts +0 -4
- package/dest/utils/node.d.ts.map +0 -1
- package/dest/utils/portal_manager.d.ts +0 -130
- package/dest/utils/portal_manager.d.ts.map +0 -1
- package/dest/utils/portal_manager.js +0 -265
- package/dest/utils/pub_key.d.ts +0 -8
- package/dest/utils/pub_key.d.ts.map +0 -1
- package/dest/utils/pxe.d.ts +0 -4
- package/dest/utils/pxe.d.ts.map +0 -1
- package/dest/wallet/account_wallet.d.ts +0 -73
- package/dest/wallet/account_wallet.d.ts.map +0 -1
- package/dest/wallet/account_wallet_with_private_key.d.ts +0 -26
- package/dest/wallet/account_wallet_with_private_key.d.ts.map +0 -1
- package/dest/wallet/base_wallet.d.ts +0 -64
- package/dest/wallet/base_wallet.d.ts.map +0 -1
- package/dest/wallet/index.d.ts +0 -17
- package/dest/wallet/index.d.ts.map +0 -1
- package/dest/wallet/signerless_wallet.d.ts +0 -22
- package/dest/wallet/signerless_wallet.d.ts.map +0 -1
- package/src/api/ethereum.ts +0 -2
- /package/src/{utils → api/ethereum}/chain_monitor.ts +0 -0
|
@@ -1,43 +1,50 @@
|
|
|
1
|
-
import { FunctionSelector, FunctionType, decodeFromAbi, encodeArguments
|
|
1
|
+
import { FunctionSelector, FunctionType, decodeFromAbi, encodeArguments } from '@aztec/foundation/abi';
|
|
2
2
|
import { BaseContractInteraction } from './base_contract_interaction.js';
|
|
3
3
|
/**
|
|
4
4
|
* This is the class that is returned when calling e.g. `contract.methods.myMethod(arg0, arg1)`.
|
|
5
5
|
* It contains available interactions one can call on a method, including view.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
this.functionDao = functionDao;
|
|
12
|
-
|
|
13
|
-
if (args.some(arg => arg === undefined || arg === null)) {
|
|
6
|
+
*/ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
7
|
+
contractAddress;
|
|
8
|
+
functionDao;
|
|
9
|
+
args;
|
|
10
|
+
constructor(wallet, contractAddress, functionDao, args){
|
|
11
|
+
super(wallet), this.contractAddress = contractAddress, this.functionDao = functionDao, this.args = args;
|
|
12
|
+
if (args.some((arg)=>arg === undefined || arg === null)) {
|
|
14
13
|
throw new Error('All function interaction arguments must be defined and not null. Received: ' + args);
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
// docs:start:create
|
|
18
17
|
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
async create(opts = {}) {
|
|
18
|
+
* Create a transaction execution request that represents this call, encoded and authenticated by the
|
|
19
|
+
* user's wallet, ready to be simulated.
|
|
20
|
+
* @param opts - An optional object containing additional configuration for the transaction.
|
|
21
|
+
* @returns A Promise that resolves to a transaction instance.
|
|
22
|
+
*/ async create(opts = {}) {
|
|
25
23
|
// docs:end:create
|
|
26
24
|
if (this.functionDao.functionType === FunctionType.UNCONSTRAINED) {
|
|
27
25
|
throw new Error("Can't call `create` on an unconstrained function.");
|
|
28
26
|
}
|
|
29
|
-
const calls = [
|
|
30
|
-
|
|
27
|
+
const calls = [
|
|
28
|
+
await this.request()
|
|
29
|
+
];
|
|
30
|
+
const fee = await this.getFeeOptions({
|
|
31
|
+
calls,
|
|
32
|
+
...opts
|
|
33
|
+
});
|
|
31
34
|
const { nonce, cancellable } = opts;
|
|
32
|
-
return await this.wallet.createTxExecutionRequest({
|
|
35
|
+
return await this.wallet.createTxExecutionRequest({
|
|
36
|
+
calls,
|
|
37
|
+
fee,
|
|
38
|
+
nonce,
|
|
39
|
+
cancellable
|
|
40
|
+
});
|
|
33
41
|
}
|
|
34
42
|
// docs:start:request
|
|
35
43
|
/**
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
async request() {
|
|
44
|
+
* Returns an execution request that represents this operation. Useful as a building
|
|
45
|
+
* block for constructing batch requests.
|
|
46
|
+
* @returns An execution request wrapped in promise.
|
|
47
|
+
*/ async request() {
|
|
41
48
|
// docs:end:request
|
|
42
49
|
const args = encodeArguments(this.functionDao, this.args);
|
|
43
50
|
return {
|
|
@@ -47,20 +54,19 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
47
54
|
type: this.functionDao.functionType,
|
|
48
55
|
to: this.contractAddress,
|
|
49
56
|
isStatic: this.functionDao.isStatic,
|
|
50
|
-
returnTypes: this.functionDao.returnTypes
|
|
57
|
+
returnTypes: this.functionDao.returnTypes
|
|
51
58
|
};
|
|
52
59
|
}
|
|
53
60
|
// docs:start:simulate
|
|
54
61
|
/**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
async simulate(options = {}) {
|
|
62
|
+
* Simulate a transaction and get its return values
|
|
63
|
+
* Differs from prove in a few important ways:
|
|
64
|
+
* 1. It returns the values of the function execution
|
|
65
|
+
* 2. It supports `unconstrained`, `private` and `public` functions
|
|
66
|
+
*
|
|
67
|
+
* @param options - An optional object containing additional configuration for the transaction.
|
|
68
|
+
* @returns The result of the transaction as returned by the contract function.
|
|
69
|
+
*/ async simulate(options = {}) {
|
|
64
70
|
// docs:end:simulate
|
|
65
71
|
if (this.functionDao.functionType == FunctionType.UNCONSTRAINED) {
|
|
66
72
|
return this.wallet.simulateUnconstrained(this.functionDao.name, this.args, this.contractAddress, options?.from);
|
|
@@ -73,38 +79,32 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
73
79
|
// The function invoked is private and it was called via an account contract
|
|
74
80
|
// TODO(#10631): There is a bug here: this branch might be triggered when there is no-account contract as well
|
|
75
81
|
rawReturnValues = simulatedTx.getPrivateReturnValues().nested[0].values;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
82
|
+
} else {
|
|
78
83
|
// The function invoked is private and it was called directly (without account contract)
|
|
79
84
|
rawReturnValues = simulatedTx.getPrivateReturnValues().values;
|
|
80
85
|
}
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
86
|
+
} else {
|
|
83
87
|
// For public functions we retrieve the first values directly from the public output.
|
|
84
88
|
rawReturnValues = simulatedTx.getPublicReturnValues()?.[0].values;
|
|
85
89
|
}
|
|
86
90
|
return rawReturnValues ? decodeFromAbi(this.functionDao.returnTypes, rawReturnValues) : [];
|
|
87
91
|
}
|
|
88
92
|
/**
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
async simulateWithProfile(options = {}) {
|
|
93
|
+
* Simulate a transaction and profile the gate count for each function in the transaction.
|
|
94
|
+
* @param options - Same options as `simulate`.
|
|
95
|
+
*
|
|
96
|
+
* @returns An object containing the function return value and profile result.
|
|
97
|
+
*/ async simulateWithProfile(options = {}) {
|
|
95
98
|
if (this.functionDao.functionType == FunctionType.UNCONSTRAINED) {
|
|
96
99
|
throw new Error("Can't profile an unconstrained function.");
|
|
97
100
|
}
|
|
98
101
|
const txRequest = await this.create();
|
|
99
102
|
const simulatedTx = await this.wallet.simulateTx(txRequest, true, options?.from, options?.skipTxValidation, undefined, true);
|
|
100
|
-
const rawReturnValues = this.functionDao.functionType == FunctionType.PRIVATE
|
|
101
|
-
? simulatedTx.getPrivateReturnValues().nested?.[0].values
|
|
102
|
-
: simulatedTx.getPublicReturnValues()?.[0].values;
|
|
103
|
+
const rawReturnValues = this.functionDao.functionType == FunctionType.PRIVATE ? simulatedTx.getPrivateReturnValues().nested?.[0].values : simulatedTx.getPublicReturnValues()?.[0].values;
|
|
103
104
|
const rawReturnValuesDecoded = rawReturnValues ? decodeFromAbi(this.functionDao.returnTypes, rawReturnValues) : [];
|
|
104
105
|
return {
|
|
105
106
|
returnValues: rawReturnValuesDecoded,
|
|
106
|
-
gateCounts: simulatedTx.profileResult.gateCounts
|
|
107
|
+
gateCounts: simulatedTx.profileResult.gateCounts
|
|
107
108
|
};
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osYUFBYSxFQUNiLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLEVBQUUsdUJBQXVCLEVBQTBCLE1BQU0sZ0NBQWdDLENBQUM7QUEwQmpHOzs7R0FHRztBQUNILE1BQU0sT0FBTywyQkFBNEIsU0FBUSx1QkFBdUI7SUFDdEUsWUFDRSxNQUFjLEVBQ0osZUFBNkIsRUFDN0IsV0FBd0IsRUFDeEIsSUFBVztRQUVyQixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFKSixvQkFBZSxHQUFmLGVBQWUsQ0FBYztRQUM3QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFPO1FBR3JCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2RUFBNkUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4RyxDQUFDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtJQUNwQjs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBMEIsRUFBRTtRQUM5QyxrQkFBa0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksS0FBSyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFD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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AztecAddress, computePartialAddress, getContractClassFromArtifact, getContractInstanceFromDeployParams
|
|
1
|
+
import { AztecAddress, computePartialAddress, getContractClassFromArtifact, getContractInstanceFromDeployParams } from '@aztec/circuits.js';
|
|
2
2
|
import { getInitializer } from '@aztec/foundation/abi';
|
|
3
3
|
import { deployInstance } from '../deployment/deploy_instance.js';
|
|
4
4
|
import { registerContractClass } from '../deployment/register_class.js';
|
|
@@ -11,41 +11,38 @@ import { DeploySentTx } from './deploy_sent_tx.js';
|
|
|
11
11
|
/**
|
|
12
12
|
* Contract interaction for deployment. Handles class registration, public instance deployment,
|
|
13
13
|
* and initialization of the contract. Extends the BaseContractInteraction class.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.instance = undefined;
|
|
14
|
+
*/ export class DeployMethod extends BaseContractInteraction {
|
|
15
|
+
publicKeys;
|
|
16
|
+
artifact;
|
|
17
|
+
postDeployCtor;
|
|
18
|
+
args;
|
|
19
|
+
/** The contract instance to be deployed. */ instance;
|
|
20
|
+
/** Constructor function to call. */ constructorArtifact;
|
|
21
|
+
constructor(publicKeys, wallet, artifact, postDeployCtor, args = [], constructorNameOrArtifact){
|
|
22
|
+
super(wallet), this.publicKeys = publicKeys, this.artifact = artifact, this.postDeployCtor = postDeployCtor, this.args = args, this.instance = undefined;
|
|
24
23
|
this.constructorArtifact = getInitializer(artifact, constructorNameOrArtifact);
|
|
25
24
|
}
|
|
26
25
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
async create(options = {}) {
|
|
26
|
+
* Create a contract deployment transaction, given the deployment options.
|
|
27
|
+
* This function internally calls `request()` and `sign()` methods to prepare
|
|
28
|
+
* the transaction for deployment. The resulting signed transaction can be
|
|
29
|
+
* later sent using the `send()` method.
|
|
30
|
+
*
|
|
31
|
+
* @param options - An object containing optional deployment settings, contractAddressSalt, and from.
|
|
32
|
+
* @returns A Promise resolving to an object containing the signed transaction data and other relevant information.
|
|
33
|
+
*/ async create(options = {}) {
|
|
36
34
|
return this.wallet.createTxExecutionRequest(await this.request(options));
|
|
37
35
|
}
|
|
38
36
|
// REFACTOR: Having a `request` method with different semantics than the ones in the other
|
|
39
37
|
// derived ContractInteractions is confusing. We should unify the flow of all ContractInteractions.
|
|
40
38
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
async request(options = {}) {
|
|
39
|
+
* Returns an array of function calls that represent this operation. Useful as a building
|
|
40
|
+
* block for constructing batch requests.
|
|
41
|
+
* @param options - Deployment options.
|
|
42
|
+
* @returns An array of function calls.
|
|
43
|
+
* @remarks This method does not have the same return type as the `request` in the ContractInteraction object,
|
|
44
|
+
* it returns a promise for an array instead of a function call directly.
|
|
45
|
+
*/ async request(options = {}) {
|
|
49
46
|
const deployment = await this.getDeploymentFunctionCalls(options);
|
|
50
47
|
// NOTE: MEGA HACK. Remove with #10007
|
|
51
48
|
// register the contract after generating deployment function calls in order to publicly register the class and (optioanlly) emit its bytecode
|
|
@@ -56,34 +53,57 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
56
53
|
// in case the initializer is public. This hints at the need of having "transient" contracts scoped to a
|
|
57
54
|
// simulation, so we can run the simulation with a set of contracts, but only "commit" them to the wallet
|
|
58
55
|
// once this tx has gone through.
|
|
59
|
-
await this.wallet.registerContract({
|
|
56
|
+
await this.wallet.registerContract({
|
|
57
|
+
artifact: this.artifact,
|
|
58
|
+
instance: await this.getInstance(options)
|
|
59
|
+
});
|
|
60
60
|
const bootstrap = await this.getInitializeFunctionCalls(options);
|
|
61
61
|
if (deployment.calls.length + bootstrap.calls.length === 0) {
|
|
62
62
|
throw new Error(`No function calls needed to deploy contract ${this.artifact.name}`);
|
|
63
63
|
}
|
|
64
|
-
const calls = [
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
const calls = [
|
|
65
|
+
...deployment.calls,
|
|
66
|
+
...bootstrap.calls
|
|
67
|
+
];
|
|
68
|
+
const authWitnesses = [
|
|
69
|
+
...deployment.authWitnesses ?? [],
|
|
70
|
+
...bootstrap.authWitnesses ?? []
|
|
71
|
+
];
|
|
72
|
+
const hashedArguments = [
|
|
73
|
+
...deployment.hashedArguments ?? [],
|
|
74
|
+
...bootstrap.hashedArguments ?? []
|
|
75
|
+
];
|
|
67
76
|
const { cancellable, nonce, fee: userFee } = options;
|
|
68
|
-
const request = {
|
|
77
|
+
const request = {
|
|
78
|
+
calls,
|
|
79
|
+
authWitnesses,
|
|
80
|
+
hashedArguments,
|
|
81
|
+
cancellable,
|
|
82
|
+
fee: userFee,
|
|
83
|
+
nonce
|
|
84
|
+
};
|
|
69
85
|
const fee = await this.getFeeOptions(request);
|
|
70
|
-
return {
|
|
86
|
+
return {
|
|
87
|
+
...request,
|
|
88
|
+
fee
|
|
89
|
+
};
|
|
71
90
|
}
|
|
72
91
|
/**
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
async register(options = {}) {
|
|
92
|
+
* Register this contract in the PXE and returns the Contract object.
|
|
93
|
+
* @param options - Deployment options.
|
|
94
|
+
*/ async register(options = {}) {
|
|
77
95
|
const instance = await this.getInstance(options);
|
|
78
|
-
await this.wallet.registerContract({
|
|
96
|
+
await this.wallet.registerContract({
|
|
97
|
+
artifact: this.artifact,
|
|
98
|
+
instance
|
|
99
|
+
});
|
|
79
100
|
return this.postDeployCtor(instance.address, this.wallet);
|
|
80
101
|
}
|
|
81
102
|
/**
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
async getDeploymentFunctionCalls(options = {}) {
|
|
103
|
+
* Returns calls for registration of the class and deployment of the instance, depending on the provided options.
|
|
104
|
+
* @param options - Deployment options.
|
|
105
|
+
* @returns A function call array with potentially requests to the class registerer and instance deployer.
|
|
106
|
+
*/ async getDeploymentFunctionCalls(options = {}) {
|
|
87
107
|
const calls = [];
|
|
88
108
|
// Set contract instance object so it's available for populating the DeploySendTx object
|
|
89
109
|
const instance = await this.getInstance(options);
|
|
@@ -97,8 +117,7 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
97
117
|
if (!options.skipClassRegistration) {
|
|
98
118
|
if ((await this.wallet.getContractClassMetadata(contractClass.id)).isContractClassPubliclyRegistered) {
|
|
99
119
|
this.log.debug(`Skipping registration of already registered contract class ${contractClass.id.toString()} for ${instance.address.toString()}`);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
120
|
+
} else {
|
|
102
121
|
this.log.info(`Creating request for registering contract class ${contractClass.id.toString()} as part of deployment for ${instance.address.toString()}`);
|
|
103
122
|
const registerContractClassInteraction = await registerContractClass(this.wallet, this.artifact);
|
|
104
123
|
calls.push(await registerContractClassInteraction.request());
|
|
@@ -109,76 +128,72 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
109
128
|
const deploymentInteraction = await deployInstance(this.wallet, instance);
|
|
110
129
|
calls.push(await deploymentInteraction.request());
|
|
111
130
|
}
|
|
112
|
-
return {
|
|
131
|
+
return {
|
|
132
|
+
calls
|
|
133
|
+
};
|
|
113
134
|
}
|
|
114
135
|
/**
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
async getInitializeFunctionCalls(options) {
|
|
136
|
+
* Returns the calls necessary to initialize the contract.
|
|
137
|
+
* @param options - Deployment options.
|
|
138
|
+
* @returns - An array of function calls.
|
|
139
|
+
*/ async getInitializeFunctionCalls(options) {
|
|
120
140
|
const { address } = await this.getInstance(options);
|
|
121
141
|
const calls = [];
|
|
122
142
|
if (this.constructorArtifact && !options.skipInitialization) {
|
|
123
143
|
const constructorCall = new ContractFunctionInteraction(this.wallet, address, this.constructorArtifact, this.args);
|
|
124
144
|
calls.push(await constructorCall.request());
|
|
125
145
|
}
|
|
126
|
-
return {
|
|
146
|
+
return {
|
|
147
|
+
calls
|
|
148
|
+
};
|
|
127
149
|
}
|
|
128
150
|
/**
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
send(options = {}) {
|
|
151
|
+
* Send the contract deployment transaction using the provided options.
|
|
152
|
+
* This function extends the 'send' method from the ContractFunctionInteraction class,
|
|
153
|
+
* allowing us to send a transaction specifically for contract deployment.
|
|
154
|
+
*
|
|
155
|
+
* @param options - An object containing various deployment options such as contractAddressSalt and from.
|
|
156
|
+
* @returns A SentTx object that returns the receipt and the deployed contract instance.
|
|
157
|
+
*/ send(options = {}) {
|
|
137
158
|
const txHashPromise = super.send(options).getTxHash();
|
|
138
159
|
this.log.debug(`Sent deployment tx of ${this.artifact.name} contract`);
|
|
139
|
-
return new DeploySentTx(this.wallet, txHashPromise, this.postDeployCtor, ()
|
|
160
|
+
return new DeploySentTx(this.wallet, txHashPromise, this.postDeployCtor, ()=>this.getInstance(options));
|
|
140
161
|
}
|
|
141
162
|
/**
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
async getInstance(options = {}) {
|
|
163
|
+
* Builds the contract instance to be deployed and returns it.
|
|
164
|
+
*
|
|
165
|
+
* @param options - An object containing various deployment options.
|
|
166
|
+
* @returns An instance object.
|
|
167
|
+
*/ async getInstance(options = {}) {
|
|
148
168
|
if (!this.instance) {
|
|
149
169
|
this.instance = await getContractInstanceFromDeployParams(this.artifact, {
|
|
150
170
|
constructorArgs: this.args,
|
|
151
171
|
salt: options.contractAddressSalt,
|
|
152
172
|
publicKeys: this.publicKeys,
|
|
153
173
|
constructorArtifact: this.constructorArtifact,
|
|
154
|
-
deployer: options.universalDeploy ? AztecAddress.ZERO : this.wallet.getAddress()
|
|
174
|
+
deployer: options.universalDeploy ? AztecAddress.ZERO : this.wallet.getAddress()
|
|
155
175
|
});
|
|
156
176
|
}
|
|
157
177
|
return this.instance;
|
|
158
178
|
}
|
|
159
179
|
/**
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
async prove(options) {
|
|
180
|
+
* Prove the request.
|
|
181
|
+
* @param options - Deployment options.
|
|
182
|
+
* @returns The proven tx.
|
|
183
|
+
*/ async prove(options) {
|
|
165
184
|
const txProvingResult = await this.proveInternal(options);
|
|
166
|
-
return new DeployProvenTx(this.wallet, txProvingResult.toTx(), this.postDeployCtor, ()
|
|
185
|
+
return new DeployProvenTx(this.wallet, txProvingResult.toTx(), this.postDeployCtor, ()=>this.getInstance(options));
|
|
167
186
|
}
|
|
168
187
|
/**
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
estimateGas(options) {
|
|
188
|
+
* Estimates gas cost for this deployment operation.
|
|
189
|
+
* @param options - Options.
|
|
190
|
+
*/ estimateGas(options) {
|
|
173
191
|
return super.estimateGas(options);
|
|
174
192
|
}
|
|
175
|
-
/** Return this deployment address. */
|
|
176
|
-
get address() {
|
|
193
|
+
/** Return this deployment address. */ get address() {
|
|
177
194
|
return this.instance?.address;
|
|
178
195
|
}
|
|
179
|
-
/** Returns the partial address for this deployment. */
|
|
180
|
-
get partialAddress() {
|
|
196
|
+
/** Returns the partial address for this deployment. */ get partialAddress() {
|
|
181
197
|
return this.instance && computePartialAddress(this.instance);
|
|
182
198
|
}
|
|
183
199
|
}
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X21ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9kZXBsb3lfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxZQUFZLEVBR1oscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUM1QixtQ0FBbUMsR0FDcEMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQWdELGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXJHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQTBCLE1BQU0sZ0NBQWdDLENBQUM7QUFHakcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQW1CbkQsMEJBQTBCO0FBQzFCLG9EQUFvRDtBQUVwRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sWUFBd0QsU0FBUSx1QkFBdUI7SUFPbEcsWUFDVSxVQUFzQixFQUM5QixNQUFjLEVBQ04sUUFBMEIsRUFDMUIsY0FBNkUsRUFDN0UsT0FBYyxFQUFFLEVBQ3hCLHlCQUFxRDtRQUVyRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFQTixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRXRCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUErRDtRQUM3RSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBWDFCLDRDQUE0QztRQUNwQyxhQUFRLEdBQWlDLFNBQVMsQ0FBQztRQWN6RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRSx5QkFB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
|
|
@@ -2,21 +2,18 @@ import { DeploySentTx } from './deploy_sent_tx.js';
|
|
|
2
2
|
import { ProvenTx } from './proven_tx.js';
|
|
3
3
|
/**
|
|
4
4
|
* A proven transaction that can be sent to the network. Returned by the `prove` method of a contract deployment.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
this.postDeployCtor = postDeployCtor;
|
|
10
|
-
this.instanceGetter = instanceGetter;
|
|
5
|
+
*/ export class DeployProvenTx extends ProvenTx {
|
|
6
|
+
postDeployCtor;
|
|
7
|
+
instanceGetter;
|
|
8
|
+
constructor(wallet, tx, postDeployCtor, instanceGetter){
|
|
9
|
+
super(wallet, tx), this.postDeployCtor = postDeployCtor, this.instanceGetter = instanceGetter;
|
|
11
10
|
}
|
|
12
11
|
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const promise = (() => {
|
|
12
|
+
* Sends the transaction to the network via the provided wallet.
|
|
13
|
+
*/ send() {
|
|
14
|
+
const promise = (()=>{
|
|
17
15
|
return this.wallet.sendTx(this.getPlainDataTx());
|
|
18
16
|
})();
|
|
19
17
|
return new DeploySentTx(this.wallet, promise, this.postDeployCtor, this.instanceGetter);
|
|
20
18
|
}
|
|
21
19
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3Byb3Zlbl90eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9kZXBsb3lfcHJvdmVuX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBc0QsU0FBUSxRQUFRO0lBQ2pGLFlBQ0UsTUFBb0IsRUFDcEIsRUFBTSxFQUNFLGNBQTZFLEVBQzdFLGNBQTBEO1FBRWxFLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFIVixtQkFBYyxHQUFkLGNBQWMsQ0FBK0Q7UUFDN0UsbUJBQWMsR0FBZCxjQUFjLENBQTRDO0lBR3BFLENBQUM7SUFFRDs7T0FFRztJQUNhLElBQUk7UUFDbEIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRUwsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxRixDQUFDO0NBQ0YifQ==
|
|
@@ -2,39 +2,37 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
2
2
|
import { SentTx } from './sent_tx.js';
|
|
3
3
|
/**
|
|
4
4
|
* A contract deployment transaction sent to the network, extending SentTx with methods to create a contract instance.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
instanceGetter)
|
|
10
|
-
super(wallet, txHashPromise);
|
|
11
|
-
this.postDeployCtor = postDeployCtor;
|
|
12
|
-
this.instanceGetter = instanceGetter;
|
|
13
|
-
this.log = createLogger('aztecjs:deploy_sent_tx');
|
|
5
|
+
*/ export class DeploySentTx extends SentTx {
|
|
6
|
+
postDeployCtor;
|
|
7
|
+
instanceGetter;
|
|
8
|
+
log;
|
|
9
|
+
constructor(wallet, txHashPromise, postDeployCtor, /** A getter for the deployed contract instance */ instanceGetter){
|
|
10
|
+
super(wallet, txHashPromise), this.postDeployCtor = postDeployCtor, this.instanceGetter = instanceGetter, this.log = createLogger('aztecjs:deploy_sent_tx');
|
|
14
11
|
}
|
|
15
12
|
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
async deployed(opts) {
|
|
13
|
+
* Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
|
|
14
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
15
|
+
* @returns The deployed contract instance.
|
|
16
|
+
*/ async deployed(opts) {
|
|
21
17
|
const receipt = await this.wait(opts);
|
|
22
18
|
const instance = await this.instanceGetter();
|
|
23
19
|
this.log.info(`Contract ${instance.address.toString()} successfully deployed.`);
|
|
24
20
|
return receipt.contract;
|
|
25
21
|
}
|
|
26
22
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
async wait(opts) {
|
|
23
|
+
* Awaits for the tx to be mined and returns the receipt along with a contract instance. Throws if tx is not mined.
|
|
24
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
25
|
+
* @returns The transaction receipt with the deployed contract instance.
|
|
26
|
+
*/ async wait(opts) {
|
|
32
27
|
const receipt = await super.wait(opts);
|
|
33
28
|
const contract = await this.getContractObject(opts?.wallet);
|
|
34
|
-
return {
|
|
29
|
+
return {
|
|
30
|
+
...receipt,
|
|
31
|
+
contract
|
|
32
|
+
};
|
|
35
33
|
}
|
|
36
34
|
async getContractObject(wallet) {
|
|
37
|
-
const isWallet = (pxe)
|
|
35
|
+
const isWallet = (pxe)=>!!pxe.createTxExecutionRequest;
|
|
38
36
|
const contractWallet = wallet ?? (isWallet(this.pxe) && this.pxe);
|
|
39
37
|
if (!contractWallet) {
|
|
40
38
|
throw new Error(`A wallet is required for creating a contract instance`);
|
|
@@ -43,4 +41,3 @@ export class DeploySentTx extends SentTx {
|
|
|
43
41
|
return this.postDeployCtor(instance.address, contractWallet);
|
|
44
42
|
}
|
|
45
43
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3NlbnRfdHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvZGVwbG95X3NlbnRfdHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTXJELE9BQU8sRUFBRSxNQUFNLEVBQWlCLE1BQU0sY0FBYyxDQUFDO0FBY3JEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQW9ELFNBQVEsTUFBTTtJQUc3RSxZQUNFLE1BQW9CLEVBQ3BCLGFBQThCLEVBQ3RCLGNBQTZFO0lBQ3JGLGtEQUFrRDtJQUMzQyxjQUEwRDtRQUVqRSxLQUFLLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBSnJCLG1CQUFjLEdBQWQsY0FBYyxDQUErRDtRQUU5RSxtQkFBYyxHQUFkLGNBQWMsQ0FBNEM7UUFQM0QsUUFBRyxHQUFHLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBVXJELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUF1QjtRQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNhLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBdUI7UUFDaEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1RCxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVTLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFlO1FBQy9DLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBaUIsRUFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBRSxHQUFjLENBQUMsd0JBQXdCLENBQUM7UUFDbEcsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUF1QixDQUFDO0lBQ3JGLENBQUM7Q0FDRiJ9
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
* Returns suggested total and teardown gas limits for a simulated tx.
|
|
3
3
|
* Note that public gas usage is only accounted for if the publicOutput is present.
|
|
4
4
|
* @param pad - Percentage to pad the suggested gas limits by, (as decimal, e.g., 0.10 for 10%).
|
|
5
|
-
*/
|
|
6
|
-
export function getGasLimits(simulationResult, pad = 0.1) {
|
|
5
|
+
*/ export function getGasLimits(simulationResult, pad = 0.1) {
|
|
7
6
|
return {
|
|
8
7
|
totalGas: simulationResult.gasUsed.totalGas.mul(1 + pad),
|
|
9
|
-
teardownGas: simulationResult.gasUsed.teardownGas.mul(1 + pad)
|
|
8
|
+
teardownGas: simulationResult.gasUsed.teardownGas.mul(1 + pad)
|
|
10
9
|
};
|
|
11
10
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2dhc19saW1pdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvZ2V0X2dhc19saW1pdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQzFCLGdCQUFvQyxFQUNwQyxHQUFHLEdBQUcsR0FBRztJQVdULE9BQU87UUFDTCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN4RCxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUMvRCxDQUFDO0FBQ0osQ0FBQyJ9
|
package/dest/contract/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The `contract` module provides utilities for deploying and interacting with contracts, based on a
|
|
3
3
|
* `Wallet` instance and a compiled artifact. Refer to the {@link account} module for how to obtain a valid
|
|
4
|
-
* `Wallet` instance, and to the {@link https://docs.aztec.network/developers/
|
|
4
|
+
* `Wallet` instance, and to the {@link https://docs.aztec.network/developers/guides/smart_contracts/how_to_compile_contract | Compiling contracts}
|
|
5
5
|
* section of the documentation for how to generate an artifact out of your Noir source code.
|
|
6
6
|
*
|
|
7
7
|
* The {@link Contract} class is the main class in this module, and provides static methods for deploying
|
|
@@ -30,16 +30,14 @@
|
|
|
30
30
|
* has synchronized its changes.
|
|
31
31
|
*
|
|
32
32
|
* @remarks If you are using typescript, consider using the
|
|
33
|
-
* {@link https://docs.aztec.network/developers/
|
|
33
|
+
* {@link https://docs.aztec.network/developers/guides/smart_contracts/how_to_compile_contract#typescript-interfaces | autogenerated type-safe interfaces}
|
|
34
34
|
* for interacting with your contracts.
|
|
35
35
|
*
|
|
36
36
|
* @packageDocumentation
|
|
37
|
-
*/
|
|
38
|
-
export {
|
|
39
|
-
export { ContractFunctionInteraction, } from './contract_function_interaction.js';
|
|
37
|
+
*/ export { Contract } from './contract.js';
|
|
38
|
+
export { ContractFunctionInteraction } from './contract_function_interaction.js';
|
|
40
39
|
export { DefaultWaitOpts, SentTx } from './sent_tx.js';
|
|
41
40
|
export { ContractBase } from './contract_base.js';
|
|
42
41
|
export { BatchCall } from './batch_call.js';
|
|
43
42
|
export { DeployMethod } from './deploy_method.js';
|
|
44
43
|
export { DeploySentTx } from './deploy_sent_tx.js';
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixHQUc1QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFpQixNQUFNLGNBQWMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUF1RSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyJ9
|
|
@@ -2,24 +2,21 @@ import { Tx } from '@aztec/circuit-types';
|
|
|
2
2
|
import { SentTx } from './sent_tx.js';
|
|
3
3
|
/**
|
|
4
4
|
* A proven transaction that can be sent to the network. Returned by the `prove` method of a contract interaction.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
constructor(wallet, tx)
|
|
8
|
-
super(tx.data, tx.clientIvcProof, tx.contractClassLogs, tx.enqueuedPublicFunctionCalls, tx.publicTeardownFunctionCall);
|
|
9
|
-
this.wallet = wallet;
|
|
5
|
+
*/ export class ProvenTx extends Tx {
|
|
6
|
+
wallet;
|
|
7
|
+
constructor(wallet, tx){
|
|
8
|
+
super(tx.data, tx.clientIvcProof, tx.contractClassLogs, tx.enqueuedPublicFunctionCalls, tx.publicTeardownFunctionCall), this.wallet = wallet;
|
|
10
9
|
}
|
|
11
10
|
// Clone the TX data to get a serializable object.
|
|
12
11
|
getPlainDataTx() {
|
|
13
12
|
return new Tx(this.data, this.clientIvcProof, this.contractClassLogs, this.enqueuedPublicFunctionCalls, this.publicTeardownFunctionCall);
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const promise = (() => {
|
|
15
|
+
* Sends the transaction to the network via the provided wallet.
|
|
16
|
+
*/ send() {
|
|
17
|
+
const promise = (()=>{
|
|
20
18
|
return this.wallet.sendTx(this.getPlainDataTx());
|
|
21
19
|
})();
|
|
22
20
|
return new SentTx(this.wallet, promise);
|
|
23
21
|
}
|
|
24
22
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVuX3R4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L3Byb3Zlbl90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksRUFBRSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsRUFBRTtJQUM5QixZQUFzQixNQUFvQixFQUFFLEVBQU07UUFDaEQsS0FBSyxDQUNILEVBQUUsQ0FBQyxJQUFJLEVBQ1AsRUFBRSxDQUFDLGNBQWMsRUFDakIsRUFBRSxDQUFDLGlCQUFpQixFQUNwQixFQUFFLENBQUMsMkJBQTJCLEVBQzlCLEVBQUUsQ0FBQywwQkFBMEIsQ0FDOUIsQ0FBQztRQVBrQixXQUFNLEdBQU4sTUFBTSxDQUFjO0lBUTFDLENBQUM7SUFFRCxrREFBa0Q7SUFDeEMsY0FBYztRQUN0QixPQUFPLElBQUksRUFBRSxDQUNYLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsMkJBQTJCLEVBQ2hDLElBQUksQ0FBQywwQkFBMEIsQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUk7UUFDVCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFTCxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGIn0=
|