@aztec/aztec.js 0.23.0 → 0.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/account/index.d.ts +1 -1
- package/dest/account/index.d.ts.map +1 -1
- package/dest/account/interface.d.ts +12 -2
- package/dest/account/interface.d.ts.map +1 -1
- package/dest/account/interface.js +1 -1
- package/dest/account_manager/index.d.ts +4 -2
- package/dest/account_manager/index.d.ts.map +1 -1
- package/dest/account_manager/index.js +15 -6
- package/dest/api/account.d.ts +1 -1
- package/dest/api/account.d.ts.map +1 -1
- package/dest/api/account.js +1 -1
- package/dest/api/deployment.d.ts +4 -0
- package/dest/api/deployment.d.ts.map +1 -0
- package/dest/api/deployment.js +4 -0
- package/dest/api/fee.d.ts +5 -0
- package/dest/api/fee.d.ts.map +1 -0
- package/dest/api/fee.js +4 -0
- package/dest/contract/base_contract_interaction.d.ts +5 -0
- package/dest/contract/base_contract_interaction.d.ts.map +1 -1
- package/dest/contract/base_contract_interaction.js +1 -1
- package/dest/contract/batch_call.d.ts +3 -2
- package/dest/contract/batch_call.d.ts.map +1 -1
- package/dest/contract/batch_call.js +4 -3
- package/dest/contract/contract.d.ts +4 -2
- package/dest/contract/contract.d.ts.map +1 -1
- package/dest/contract/contract.js +7 -5
- package/dest/contract/contract_function_interaction.d.ts +2 -2
- package/dest/contract/contract_function_interaction.d.ts.map +1 -1
- package/dest/contract/contract_function_interaction.js +4 -4
- package/dest/contract/deploy_method.d.ts +37 -12
- package/dest/contract/deploy_method.d.ts.map +1 -1
- package/dest/contract/deploy_method.js +79 -35
- package/dest/contract/deploy_sent_tx.d.ts +3 -3
- package/dest/contract/deploy_sent_tx.d.ts.map +1 -1
- package/dest/contract/deploy_sent_tx.js +4 -7
- package/dest/contract/sent_tx.d.ts.map +1 -1
- package/dest/contract/sent_tx.js +10 -10
- package/dest/contract/unsafe_contract.d.ts +15 -0
- package/dest/contract/unsafe_contract.d.ts.map +1 -0
- package/dest/contract/unsafe_contract.js +14 -0
- package/dest/deployment/broadcast_function.d.ts +24 -0
- package/dest/deployment/broadcast_function.d.ts.map +1 -0
- package/dest/deployment/broadcast_function.js +67 -0
- package/dest/{contract_deployer → deployment}/contract_deployer.d.ts +4 -3
- package/dest/deployment/contract_deployer.d.ts.map +1 -0
- package/dest/{contract_deployer → deployment}/contract_deployer.js +5 -4
- package/dest/deployment/deploy_instance.d.ts +13 -0
- package/dest/deployment/deploy_instance.d.ts.map +1 -0
- package/dest/deployment/deploy_instance.js +13 -0
- package/dest/deployment/index.d.ts.map +1 -0
- package/dest/{contract_deployer → deployment}/index.js +1 -1
- package/dest/deployment/protocol_contracts.d.ts +7 -0
- package/dest/deployment/protocol_contracts.d.ts.map +1 -0
- package/dest/deployment/protocol_contracts.js +14 -0
- package/dest/deployment/register_class.d.ts +6 -0
- package/dest/deployment/register_class.d.ts.map +1 -0
- package/dest/deployment/register_class.js +12 -0
- package/dest/fee/fee_payment_method.d.ts +24 -0
- package/dest/fee/fee_payment_method.d.ts.map +1 -0
- package/dest/fee/fee_payment_method.js +2 -0
- package/dest/fee/native_fee_payment_method.d.ts +32 -0
- package/dest/fee/native_fee_payment_method.d.ts.map +1 -0
- package/dest/fee/native_fee_payment_method.js +54 -0
- package/dest/fee/private_fee_payment_method.d.ts +52 -0
- package/dest/fee/private_fee_payment_method.d.ts.map +1 -0
- package/dest/fee/private_fee_payment_method.js +62 -0
- package/dest/fee/public_fee_payment_method.d.ts +52 -0
- package/dest/fee/public_fee_payment_method.d.ts.map +1 -0
- package/dest/fee/public_fee_payment_method.js +62 -0
- package/dest/index.d.ts +6 -4
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +7 -5
- package/dest/rpc_clients/pxe_client.d.ts.map +1 -1
- package/dest/rpc_clients/pxe_client.js +15 -15
- package/dest/utils/authwit.d.ts +30 -4
- package/dest/utils/authwit.d.ts.map +1 -1
- package/dest/utils/authwit.js +35 -5
- package/dest/utils/cheat_codes.js +3 -3
- package/dest/utils/index.d.ts +0 -1
- package/dest/utils/index.d.ts.map +1 -1
- package/dest/utils/index.js +1 -2
- package/dest/utils/l2_contracts.js +2 -2
- package/dest/wallet/account_wallet.d.ts +10 -3
- package/dest/wallet/account_wallet.d.ts.map +1 -1
- package/dest/wallet/account_wallet.js +34 -10
- package/dest/wallet/base_wallet.d.ts +7 -4
- package/dest/wallet/base_wallet.d.ts.map +1 -1
- package/dest/wallet/base_wallet.js +9 -3
- package/dest/wallet/signerless_wallet.js +2 -2
- package/package.json +9 -6
- package/src/account/contract.ts +33 -0
- package/src/account/index.ts +16 -0
- package/src/account/interface.ts +47 -0
- package/src/account/wallet.ts +8 -0
- package/src/account_manager/deploy_account_sent_tx.ts +42 -0
- package/src/account_manager/index.ts +188 -0
- package/src/api/README.md +7 -0
- package/src/api/abi.ts +3 -0
- package/src/api/account.ts +13 -0
- package/src/api/aztec_address.ts +1 -0
- package/src/api/deployment.ts +3 -0
- package/src/api/eth_address.ts +1 -0
- package/src/api/ethereum.ts +6 -0
- package/src/api/fee.ts +4 -0
- package/src/api/fields.ts +1 -0
- package/src/api/init.ts +10 -0
- package/src/api/interfaces/pxe.ts +1 -0
- package/src/api/log_id.ts +1 -0
- package/src/api/tx_hash.ts +1 -0
- package/src/api/wallet.ts +1 -0
- package/src/contract/base_contract_interaction.ts +67 -0
- package/src/contract/batch_call.ts +24 -0
- package/src/contract/checker.ts +117 -0
- package/src/contract/contract.ts +64 -0
- package/src/contract/contract_base.ts +72 -0
- package/src/contract/contract_function_interaction.ts +80 -0
- package/src/contract/deploy_method.ts +192 -0
- package/src/contract/deploy_sent_tx.ts +66 -0
- package/src/contract/index.ts +44 -0
- package/src/contract/sent_tx.ts +135 -0
- package/src/contract/unsafe_contract.ts +19 -0
- package/src/deployment/broadcast_function.ts +118 -0
- package/src/deployment/contract_deployer.ts +42 -0
- package/src/deployment/deploy_instance.ts +28 -0
- package/src/deployment/index.ts +1 -0
- package/src/deployment/protocol_contracts.ts +17 -0
- package/src/deployment/register_class.ts +19 -0
- package/src/fee/fee_payment_method.ts +25 -0
- package/src/fee/native_fee_payment_method.ts +60 -0
- package/src/fee/private_fee_payment_method.ts +79 -0
- package/src/fee/public_fee_payment_method.ts +79 -0
- package/src/index.ts +150 -0
- package/src/rpc_clients/index.ts +1 -0
- package/src/rpc_clients/pxe_client.ts +63 -0
- package/src/utils/abi_types.ts +16 -0
- package/src/utils/account.ts +32 -0
- package/src/utils/authwit.ts +62 -0
- package/src/utils/cheat_codes.ts +297 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/l1_contracts.ts +21 -0
- package/src/utils/l2_contracts.ts +12 -0
- package/src/utils/pub_key.ts +12 -0
- package/src/utils/pxe.ts +16 -0
- package/src/wallet/account_wallet.ts +94 -0
- package/src/wallet/account_wallet_with_private_key.ts +28 -0
- package/src/wallet/base_wallet.ts +129 -0
- package/src/wallet/create_recipient.ts +13 -0
- package/src/wallet/index.ts +31 -0
- package/src/wallet/signerless_wallet.ts +37 -0
- package/dest/contract_deployer/contract_deployer.d.ts.map +0 -1
- package/dest/contract_deployer/index.d.ts.map +0 -1
- package/dest/utils/secrets.d.ts +0 -8
- package/dest/utils/secrets.d.ts.map +0 -1
- package/dest/utils/secrets.js +0 -10
- /package/dest/{contract_deployer → deployment}/index.d.ts +0 -0
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ContractDeploymentData, FunctionData, TxContext, computePartialAddress, getContractInstanceFromDeployParams, } from '@aztec/circuits.js';
|
|
3
|
-
import { encodeArguments } from '@aztec/foundation/abi';
|
|
1
|
+
import { computePartialAddress, getContractClassFromArtifact, getContractInstanceFromDeployParams, } from '@aztec/circuits.js';
|
|
4
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { deployInstance } from '../deployment/deploy_instance.js';
|
|
6
|
+
import { registerContractClass } from '../deployment/register_class.js';
|
|
6
7
|
import { BaseContractInteraction } from './base_contract_interaction.js';
|
|
8
|
+
import { ContractFunctionInteraction } from './contract_function_interaction.js';
|
|
7
9
|
import { DeploySentTx } from './deploy_sent_tx.js';
|
|
10
|
+
// TODO(@spalladino): Add unit tests for this class!
|
|
8
11
|
/**
|
|
9
|
-
*
|
|
10
|
-
* Extends the
|
|
12
|
+
* Contract interaction for deployment. Handles class registration, public instance deployment,
|
|
13
|
+
* and initialization of the contract. Extends the BaseContractInteraction class.
|
|
11
14
|
*/
|
|
12
15
|
export class DeployMethod extends BaseContractInteraction {
|
|
13
|
-
constructor(publicKey,
|
|
14
|
-
super(
|
|
16
|
+
constructor(publicKey, wallet, artifact, postDeployCtor, args = [], constructorName = 'constructor') {
|
|
17
|
+
super(wallet);
|
|
15
18
|
this.publicKey = publicKey;
|
|
16
|
-
this.
|
|
19
|
+
this.wallet = wallet;
|
|
17
20
|
this.artifact = artifact;
|
|
18
21
|
this.postDeployCtor = postDeployCtor;
|
|
19
22
|
this.args = args;
|
|
20
23
|
/** The contract instance to be deployed. */
|
|
21
24
|
this.instance = undefined;
|
|
22
|
-
|
|
25
|
+
this.log = createDebugLogger('aztec:js:deploy_method');
|
|
26
|
+
const constructorArtifact = artifact.functions.find(f => f.name === constructorName);
|
|
23
27
|
if (!constructorArtifact) {
|
|
24
28
|
throw new Error('Cannot find constructor in the artifact.');
|
|
25
29
|
}
|
|
@@ -35,32 +39,57 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
35
39
|
* @returns A Promise resolving to an object containing the signed transaction data and other relevant information.
|
|
36
40
|
*/
|
|
37
41
|
async create(options = {}) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const address = instance.address;
|
|
44
|
-
const contractDeploymentData = new ContractDeploymentData(this.publicKey, instance.initializationHash, instance.contractClassId, contractAddressSalt, portalContract);
|
|
45
|
-
const txContext = new TxContext(false, false, true, contractDeploymentData, new Fr(chainId), new Fr(protocolVersion));
|
|
46
|
-
const args = encodeArguments(this.constructorArtifact, this.args);
|
|
47
|
-
const functionData = FunctionData.fromAbi(this.constructorArtifact);
|
|
48
|
-
const execution = { args, functionData, to: address };
|
|
49
|
-
const packedArguments = PackedArguments.fromArgs(execution.args);
|
|
50
|
-
const txRequest = TxExecutionRequest.from({
|
|
51
|
-
origin: execution.to,
|
|
52
|
-
functionData: execution.functionData,
|
|
53
|
-
argsHash: packedArguments.hash,
|
|
54
|
-
txContext,
|
|
55
|
-
packedArguments: [packedArguments],
|
|
56
|
-
authWitnesses: [],
|
|
57
|
-
});
|
|
58
|
-
this.txRequest = txRequest;
|
|
59
|
-
this.instance = instance;
|
|
60
|
-
// TODO: Should we add the contracts to the DB here, or once the tx has been sent or mined?
|
|
61
|
-
await this.pxe.addContracts([{ artifact: this.artifact, instance }]);
|
|
42
|
+
if (!this.txRequest) {
|
|
43
|
+
this.txRequest = await this.wallet.createTxExecutionRequest(await this.request(options));
|
|
44
|
+
// TODO: Should we add the contracts to the DB here, or once the tx has been sent or mined?
|
|
45
|
+
await this.pxe.addContracts([{ artifact: this.artifact, instance: this.instance }]);
|
|
46
|
+
}
|
|
62
47
|
return this.txRequest;
|
|
63
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns an array of function calls that represent this operation. Useful as a building
|
|
51
|
+
* block for constructing batch requests.
|
|
52
|
+
* @param options - Deployment options.
|
|
53
|
+
* @returns An array of function calls.
|
|
54
|
+
* @remarks This method does not have the same return type as the `request` in the ContractInteraction object,
|
|
55
|
+
* it returns a promise for an array instead of a function call directly.
|
|
56
|
+
*/
|
|
57
|
+
async request(options = {}) {
|
|
58
|
+
const { address } = this.getInstance(options);
|
|
59
|
+
const constructorCall = new ContractFunctionInteraction(this.wallet, address, this.constructorArtifact, this.args);
|
|
60
|
+
return [...(await this.getDeploymentFunctionCalls(options)), constructorCall.request()];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Returns calls for registration of the class and deployment of the instance, depending on the provided options.
|
|
64
|
+
* @param options - Deployment options.
|
|
65
|
+
* @returns A function call array with potentially requests to the class registerer and instance deployer.
|
|
66
|
+
*/
|
|
67
|
+
async getDeploymentFunctionCalls(options = {}) {
|
|
68
|
+
const calls = [];
|
|
69
|
+
// Set contract instance object so it's available for populating the DeploySendTx object
|
|
70
|
+
const instance = this.getInstance(options);
|
|
71
|
+
// Obtain contract class from artifact and check it matches the reported one by the instance.
|
|
72
|
+
// TODO(@spalladino): We're unnecessarily calculating the contract class multiple times here.
|
|
73
|
+
const contractClass = getContractClassFromArtifact(this.artifact);
|
|
74
|
+
if (!instance.contractClassId.equals(contractClass.id)) {
|
|
75
|
+
throw new Error(`Contract class mismatch when deploying contract: got ${instance.contractClassId.toString()} from instance and ${contractClass.id.toString()} from artifact`);
|
|
76
|
+
}
|
|
77
|
+
// Register the contract class if it hasn't been published already.
|
|
78
|
+
if (!options.skipClassRegistration) {
|
|
79
|
+
if (await this.pxe.isContractClassPubliclyRegistered(contractClass.id)) {
|
|
80
|
+
this.log(`Skipping registration of already registered contract class ${contractClass.id.toString()} for ${instance.address.toString()}`);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.log(`Creating request for registering contract class ${contractClass.id.toString()} as part of deployment for ${instance.address.toString()}`);
|
|
84
|
+
calls.push((await registerContractClass(this.wallet, this.artifact)).request());
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Deploy the contract via the instance deployer.
|
|
88
|
+
if (!options.skipPublicDeployment) {
|
|
89
|
+
calls.push(deployInstance(this.wallet, instance, { universalDeploy: options.universalDeploy }).request());
|
|
90
|
+
}
|
|
91
|
+
return calls;
|
|
92
|
+
}
|
|
64
93
|
/**
|
|
65
94
|
* Send the contract deployment transaction using the provided options.
|
|
66
95
|
* This function extends the 'send' method from the ContractFunctionInteraction class,
|
|
@@ -71,7 +100,22 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
71
100
|
*/
|
|
72
101
|
send(options = {}) {
|
|
73
102
|
const txHashPromise = super.send(options).getTxHash();
|
|
74
|
-
return new DeploySentTx(this.pxe, txHashPromise, this.postDeployCtor, this.
|
|
103
|
+
return new DeploySentTx(this.pxe, txHashPromise, this.postDeployCtor, this.getInstance(options));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Builds the contract instance to be deployed and returns it.
|
|
107
|
+
*
|
|
108
|
+
* @param options - An object containing various deployment options.
|
|
109
|
+
* @returns An instance object.
|
|
110
|
+
*/
|
|
111
|
+
getInstance(options = {}) {
|
|
112
|
+
if (!this.instance) {
|
|
113
|
+
const portalContract = options.portalContract ?? EthAddress.ZERO;
|
|
114
|
+
const contractAddressSalt = options.contractAddressSalt ?? Fr.random();
|
|
115
|
+
const deployParams = [this.artifact, this.args, contractAddressSalt, this.publicKey, portalContract];
|
|
116
|
+
this.instance = getContractInstanceFromDeployParams(...deployParams);
|
|
117
|
+
}
|
|
118
|
+
return this.instance;
|
|
75
119
|
}
|
|
76
120
|
/**
|
|
77
121
|
* Simulate the request.
|
|
@@ -90,4 +134,4 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
90
134
|
return this.instance && computePartialAddress(this.instance);
|
|
91
135
|
}
|
|
92
136
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X21ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9kZXBsb3lfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLG1DQUFtQyxHQUNwQyxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc1RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFtQm5ELG9EQUFvRDtBQUVwRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sWUFBd0QsU0FBUSx1QkFBdUI7SUFTbEcsWUFDVSxTQUFvQixFQUNsQixNQUFjLEVBQ2hCLFFBQTBCLEVBQzFCLGNBQTZFLEVBQzdFLE9BQWMsRUFBRSxFQUN4QixrQkFBMEIsYUFBYTtRQUV2QyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFQTixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQStEO1FBQzdFLFNBQUksR0FBSixJQUFJLENBQVk7UUFiMUIsNENBQTRDO1FBQ3BDLGFBQVEsR0FBaUMsU0FBUyxDQUFD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
|
|
@@ -22,10 +22,10 @@ export type DeployTxReceipt<TContract extends ContractBase = Contract> = FieldsO
|
|
|
22
22
|
export declare class DeploySentTx<TContract extends Contract = Contract> extends SentTx {
|
|
23
23
|
private postDeployCtor;
|
|
24
24
|
/** The deployed contract instance */
|
|
25
|
-
instance
|
|
25
|
+
instance: ContractInstanceWithAddress;
|
|
26
26
|
constructor(wallet: PXE | Wallet, txHashPromise: Promise<TxHash>, postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>,
|
|
27
27
|
/** The deployed contract instance */
|
|
28
|
-
instance
|
|
28
|
+
instance: ContractInstanceWithAddress);
|
|
29
29
|
/**
|
|
30
30
|
* Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
|
|
31
31
|
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
@@ -38,6 +38,6 @@ export declare class DeploySentTx<TContract extends Contract = Contract> extends
|
|
|
38
38
|
* @returns The transaction receipt with the deployed contract instance.
|
|
39
39
|
*/
|
|
40
40
|
wait(opts?: DeployedWaitOpts): Promise<DeployTxReceipt<TContract>>;
|
|
41
|
-
protected getContractObject(wallet?: Wallet
|
|
41
|
+
protected getContractObject(wallet?: Wallet): Promise<TContract>;
|
|
42
42
|
}
|
|
43
43
|
//# sourceMappingURL=deploy_sent_tx.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_sent_tx.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_sent_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEhD,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;IAI3E,OAAO,CAAC,cAAc;IACtB,qCAAqC;IAC9B,QAAQ,
|
|
1
|
+
{"version":3,"file":"deploy_sent_tx.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_sent_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEhD,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;IAI3E,OAAO,CAAC,cAAc;IACtB,qCAAqC;IAC9B,QAAQ,EAAE,2BAA2B;gBAJ5C,MAAM,EAAE,GAAG,GAAG,MAAM,EACpB,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,EACtB,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC;IACrF,qCAAqC;IAC9B,QAAQ,EAAE,2BAA2B;IAK9C;;;;OAIG;IACU,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKlE;;;;OAIG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAM/E,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CAQjE"}
|
|
@@ -26,19 +26,16 @@ export class DeploySentTx extends SentTx {
|
|
|
26
26
|
*/
|
|
27
27
|
async wait(opts) {
|
|
28
28
|
const receipt = await super.wait(opts);
|
|
29
|
-
const contract = await this.getContractObject(opts?.wallet
|
|
29
|
+
const contract = await this.getContractObject(opts?.wallet);
|
|
30
30
|
return { ...receipt, contract };
|
|
31
31
|
}
|
|
32
|
-
getContractObject(wallet
|
|
32
|
+
getContractObject(wallet) {
|
|
33
33
|
const isWallet = (pxe) => !!pxe.createTxExecutionRequest;
|
|
34
34
|
const contractWallet = wallet ?? (isWallet(this.pxe) && this.pxe);
|
|
35
35
|
if (!contractWallet) {
|
|
36
36
|
throw new Error(`A wallet is required for creating a contract instance`);
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
throw new Error(`Contract address is missing from transaction receipt`);
|
|
40
|
-
}
|
|
41
|
-
return this.postDeployCtor(address, contractWallet);
|
|
38
|
+
return this.postDeployCtor(this.instance.address, contractWallet);
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3NlbnRfdHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvZGVwbG95X3NlbnRfdHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLE1BQU0sRUFBWSxNQUFNLGNBQWMsQ0FBQztBQWNoRDs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFvRCxTQUFRLE1BQU07SUFDN0UsWUFDRSxNQUFvQixFQUNwQixhQUE4QixFQUN0QixjQUE2RTtJQUNyRixxQ0FBcUM7SUFDOUIsUUFBcUM7UUFFNUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUpyQixtQkFBYyxHQUFkLGNBQWMsQ0FBK0Q7UUFFOUUsYUFBUSxHQUFSLFFBQVEsQ0FBNkI7SUFHOUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQXVCO1FBQzNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQXVCO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUQsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxNQUFlO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBaUIsRUFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBRSxHQUFjLENBQUMsd0JBQXdCLENBQUM7UUFDbEcsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBdUIsQ0FBQztJQUMxRixDQUFDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sent_tx.d.ts","sourceRoot":"","sources":["../../src/contract/sent_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAElH,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,2CAA2C;AAC3C,MAAM,MAAM,QAAQ,GAAG;IACrB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;QAGI;IACJ,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kFAAkF;IAClF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,QAK7B,CAAC;AAEF;;;GAGG;AACH,qBAAa,MAAM;IACL,SAAS,CAAC,GAAG,EAAE,GAAG;IAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;gBAAlD,GAAG,EAAE,GAAG,EAAY,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;IAExE;;;;;OAKG;
|
|
1
|
+
{"version":3,"file":"sent_tx.d.ts","sourceRoot":"","sources":["../../src/contract/sent_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAElH,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,2CAA2C;AAC3C,MAAM,MAAM,QAAQ,GAAG;IACrB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;QAGI;IACJ,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kFAAkF;IAClF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,QAK7B,CAAC;AAEF;;;GAGG;AACH,qBAAa,MAAM;IACL,SAAS,CAAC,GAAG,EAAE,GAAG;IAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;gBAAlD,GAAG,EAAE,GAAG,EAAY,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;IAExE;;;;;OAKG;IACI,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC;;;;;;OAMG;IACU,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAK7C;;;;OAIG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAyBhE;;;;OAIG;IACU,kBAAkB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAKtE;;;;OAIG;IACU,eAAe,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;cAKvC,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;CA6BpE"}
|
package/dest/contract/sent_tx.js
CHANGED
|
@@ -21,8 +21,8 @@ export class SentTx {
|
|
|
21
21
|
*
|
|
22
22
|
* @returns A promise that resolves to the transaction hash of the SentTx instance.
|
|
23
23
|
*/
|
|
24
|
-
|
|
25
|
-
return
|
|
24
|
+
getTxHash() {
|
|
25
|
+
return this.txHashPromise;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Retrieve the transaction receipt associated with the current SentTx instance.
|
|
@@ -50,15 +50,15 @@ export class SentTx {
|
|
|
50
50
|
}
|
|
51
51
|
if (opts?.debug) {
|
|
52
52
|
const txHash = await this.getTxHash();
|
|
53
|
-
const tx = (await this.pxe.
|
|
53
|
+
const tx = (await this.pxe.getTxEffect(txHash));
|
|
54
54
|
const visibleNotes = await this.pxe.getNotes({ txHash });
|
|
55
55
|
receipt.debugInfo = {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
noteHashes: tx.noteHashes.filter(n => !n.isZero()),
|
|
57
|
+
nullifiers: tx.nullifiers.filter(n => !n.isZero()),
|
|
58
|
+
publicDataWrites: tx.publicDataWrites.filter(p => !p.isEmpty()),
|
|
59
|
+
l2ToL1Msgs: tx.l2ToL1Msgs.filter(l => !l.isZero()),
|
|
60
|
+
contractsLeaves: tx.contractLeaves.filter(c => !c.isZero()),
|
|
61
|
+
contractData: tx.contractData.filter(c => !c.isEmpty()),
|
|
62
62
|
visibleNotes,
|
|
63
63
|
};
|
|
64
64
|
}
|
|
@@ -107,4 +107,4 @@ export class SentTx {
|
|
|
107
107
|
}, 'isMined', opts?.timeout ?? DefaultWaitOpts.timeout, opts?.interval ?? DefaultWaitOpts.interval);
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudF90eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9zZW50X3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0UsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBa0JyRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWE7SUFDdkMsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsQ0FBQztJQUNYLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLE1BQU07SUFDakIsWUFBc0IsR0FBUSxFQUFZLGFBQThCO1FBQWxELFFBQUcsR0FBSCxHQUFHLENBQUs7UUFBWSxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7SUFBRyxDQUFDO0lBRTVFOzs7OztPQUtHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEMsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFlO1FBQy9CLElBQUksSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ContractArtifact } from '@aztec/foundation/abi';
|
|
2
|
+
import { ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
3
|
+
import { Wallet } from '../wallet/index.js';
|
|
4
|
+
import { ContractBase } from './contract_base.js';
|
|
5
|
+
/** Unsafe constructor for ContractBase that bypasses the check that the instance is registered in the wallet. */
|
|
6
|
+
export declare class UnsafeContract extends ContractBase {
|
|
7
|
+
constructor(
|
|
8
|
+
/** The deployed contract instance definition. */
|
|
9
|
+
instance: ContractInstanceWithAddress,
|
|
10
|
+
/** The Application Binary Interface for the contract. */
|
|
11
|
+
artifact: ContractArtifact,
|
|
12
|
+
/** The wallet used for interacting with this contract. */
|
|
13
|
+
wallet: Wallet);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=unsafe_contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsafe_contract.d.ts","sourceRoot":"","sources":["../../src/contract/unsafe_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,iHAAiH;AACjH,qBAAa,cAAe,SAAQ,YAAY;;IAE5C,iDAAiD;IACjD,QAAQ,EAAE,2BAA2B;IACrC,yDAAyD;IACzD,QAAQ,EAAE,gBAAgB;IAC1B,0DAA0D;IAC1D,MAAM,EAAE,MAAM;CAIjB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ContractBase } from './contract_base.js';
|
|
2
|
+
/** Unsafe constructor for ContractBase that bypasses the check that the instance is registered in the wallet. */
|
|
3
|
+
export class UnsafeContract extends ContractBase {
|
|
4
|
+
constructor(
|
|
5
|
+
/** The deployed contract instance definition. */
|
|
6
|
+
instance,
|
|
7
|
+
/** The Application Binary Interface for the contract. */
|
|
8
|
+
artifact,
|
|
9
|
+
/** The wallet used for interacting with this contract. */
|
|
10
|
+
wallet) {
|
|
11
|
+
super(instance, artifact, wallet);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zYWZlX2NvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L3Vuc2FmZV9jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsaUhBQWlIO0FBQ2pILE1BQU0sT0FBTyxjQUFlLFNBQVEsWUFBWTtJQUM5QztJQUNFLGlEQUFpRDtJQUNqRCxRQUFxQztJQUNyQyx5REFBeUQ7SUFDekQsUUFBMEI7SUFDMUIsMERBQTBEO0lBQzFELE1BQWM7UUFFZCxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ContractArtifact, FunctionSelector } from '@aztec/foundation/abi';
|
|
2
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
3
|
+
import { Wallet } from '../wallet/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Sets up a call to broadcast a private function's bytecode via the ClassRegisterer contract.
|
|
6
|
+
* Note that this is not required for users to call the function, but is rather a convenience to make
|
|
7
|
+
* this code publicly available so dapps or wallets do not need to redistribute it.
|
|
8
|
+
* @param wallet - Wallet to send the transaction.
|
|
9
|
+
* @param artifact - Contract artifact that contains the function to be broadcast.
|
|
10
|
+
* @param selector - Selector of the function to be broadcast.
|
|
11
|
+
* @returns A ContractFunctionInteraction object that can be used to send the transaction.
|
|
12
|
+
*/
|
|
13
|
+
export declare function broadcastPrivateFunction(wallet: Wallet, artifact: ContractArtifact, selector: FunctionSelector): ContractFunctionInteraction;
|
|
14
|
+
/**
|
|
15
|
+
* Sets up a call to broadcast an unconstrained function's bytecode via the ClassRegisterer contract.
|
|
16
|
+
* Note that this is not required for users to call the function, but is rather a convenience to make
|
|
17
|
+
* this code publicly available so dapps or wallets do not need to redistribute it.
|
|
18
|
+
* @param wallet - Wallet to send the transaction.
|
|
19
|
+
* @param artifact - Contract artifact that contains the function to be broadcast.
|
|
20
|
+
* @param selector - Selector of the function to be broadcast.
|
|
21
|
+
* @returns A ContractFunctionInteraction object that can be used to send the transaction.
|
|
22
|
+
*/
|
|
23
|
+
export declare function broadcastUnconstrainedFunction(wallet: Wallet, artifact: ContractArtifact, selector: FunctionSelector): ContractFunctionInteraction;
|
|
24
|
+
//# sourceMappingURL=broadcast_function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast_function.d.ts","sourceRoot":"","sources":["../../src/deployment/broadcast_function.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAgC,MAAM,uBAAuB,CAAC;AAIzG,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,gBAAgB,GACzB,2BAA2B,CAuC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,gBAAgB,GACzB,2BAA2B,CAgC7B"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { ARTIFACT_FUNCTION_TREE_MAX_HEIGHT, MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS, computeArtifactFunctionTree, computeArtifactFunctionTreeRoot, computeArtifactMetadataHash, computeFunctionArtifactHash, computePrivateFunctionsTree, getContractClassFromArtifact, } from '@aztec/circuits.js';
|
|
2
|
+
import { FunctionSelector, FunctionType, bufferAsFields } from '@aztec/foundation/abi';
|
|
3
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
+
import { getRegistererContract } from './protocol_contracts.js';
|
|
6
|
+
/**
|
|
7
|
+
* Sets up a call to broadcast a private function's bytecode via the ClassRegisterer contract.
|
|
8
|
+
* Note that this is not required for users to call the function, but is rather a convenience to make
|
|
9
|
+
* this code publicly available so dapps or wallets do not need to redistribute it.
|
|
10
|
+
* @param wallet - Wallet to send the transaction.
|
|
11
|
+
* @param artifact - Contract artifact that contains the function to be broadcast.
|
|
12
|
+
* @param selector - Selector of the function to be broadcast.
|
|
13
|
+
* @returns A ContractFunctionInteraction object that can be used to send the transaction.
|
|
14
|
+
*/
|
|
15
|
+
export function broadcastPrivateFunction(wallet, artifact, selector) {
|
|
16
|
+
const contractClass = getContractClassFromArtifact(artifact);
|
|
17
|
+
const privateFunction = contractClass.privateFunctions.find(fn => fn.selector.equals(selector));
|
|
18
|
+
if (!privateFunction) {
|
|
19
|
+
throw new Error(`Private function with selector ${selector.toString()} not found`);
|
|
20
|
+
}
|
|
21
|
+
const privateFunctionArtifact = artifact.functions.find(fn => FunctionSelector.fromNameAndParameters(fn).equals(selector));
|
|
22
|
+
// TODO(@spalladino): The following is computing the unconstrained root hash twice.
|
|
23
|
+
// Feels like we need a nicer API for returning a hash along with all its preimages,
|
|
24
|
+
// since it's common to provide all hash preimages to a function that verifies them.
|
|
25
|
+
const artifactMetadataHash = computeArtifactMetadataHash(artifact);
|
|
26
|
+
const unconstrainedArtifactFunctionTreeRoot = computeArtifactFunctionTreeRoot(artifact, FunctionType.OPEN);
|
|
27
|
+
// We need two sibling paths because private function information is split across two trees:
|
|
28
|
+
// The "private function tree" captures the selectors and verification keys, and is used in the kernel circuit for verifying the proof generated by the app circuit.
|
|
29
|
+
// The "artifact tree" captures function bytecode and metadata, and is used by the pxe to check that its executing the code it's supposed to be executing, but it never goes into circuits.
|
|
30
|
+
const privateFunctionTreePath = computePrivateFunctionsTree(contractClass.privateFunctions).getSiblingPath(0);
|
|
31
|
+
const artifactFunctionTreePath = computeArtifactFunctionTree(artifact, FunctionType.SECRET).getSiblingPath(0);
|
|
32
|
+
const vkHash = privateFunction.vkHash;
|
|
33
|
+
const metadataHash = computeFunctionArtifactHash(privateFunctionArtifact);
|
|
34
|
+
const bytecode = bufferAsFields(Buffer.from(privateFunctionArtifact.bytecode, 'hex'), MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS);
|
|
35
|
+
const registerer = getRegistererContract(wallet);
|
|
36
|
+
return registerer.methods.broadcast_private_function(contractClass.id, Fr.fromBufferReduce(artifactMetadataHash), Fr.fromBufferReduce(unconstrainedArtifactFunctionTreeRoot), privateFunctionTreePath.map(Fr.fromBufferReduce), padArrayEnd(artifactFunctionTreePath.map(Fr.fromBufferReduce), Fr.ZERO, ARTIFACT_FUNCTION_TREE_MAX_HEIGHT),
|
|
37
|
+
// eslint-disable-next-line camelcase
|
|
38
|
+
{ selector, metadata_hash: Fr.fromBufferReduce(metadataHash), bytecode, vk_hash: vkHash });
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Sets up a call to broadcast an unconstrained function's bytecode via the ClassRegisterer contract.
|
|
42
|
+
* Note that this is not required for users to call the function, but is rather a convenience to make
|
|
43
|
+
* this code publicly available so dapps or wallets do not need to redistribute it.
|
|
44
|
+
* @param wallet - Wallet to send the transaction.
|
|
45
|
+
* @param artifact - Contract artifact that contains the function to be broadcast.
|
|
46
|
+
* @param selector - Selector of the function to be broadcast.
|
|
47
|
+
* @returns A ContractFunctionInteraction object that can be used to send the transaction.
|
|
48
|
+
*/
|
|
49
|
+
export function broadcastUnconstrainedFunction(wallet, artifact, selector) {
|
|
50
|
+
const functionArtifactIndex = artifact.functions.findIndex(fn => fn.functionType === FunctionType.UNCONSTRAINED && FunctionSelector.fromNameAndParameters(fn).equals(selector));
|
|
51
|
+
if (functionArtifactIndex < 0) {
|
|
52
|
+
throw new Error(`Unconstrained function with selector ${selector.toString()} not found`);
|
|
53
|
+
}
|
|
54
|
+
const functionArtifact = artifact.functions[functionArtifactIndex];
|
|
55
|
+
// TODO(@spalladino): Same comment as above on computing duplicated hashes.
|
|
56
|
+
const artifactMetadataHash = computeArtifactMetadataHash(artifact);
|
|
57
|
+
const privateArtifactFunctionTreeRoot = computeArtifactFunctionTreeRoot(artifact, FunctionType.SECRET);
|
|
58
|
+
const functionTreePath = computeArtifactFunctionTree(artifact, FunctionType.UNCONSTRAINED).getSiblingPath(functionArtifactIndex);
|
|
59
|
+
const contractClassId = getContractClassFromArtifact(artifact).id;
|
|
60
|
+
const metadataHash = computeFunctionArtifactHash(functionArtifact);
|
|
61
|
+
const bytecode = bufferAsFields(Buffer.from(functionArtifact.bytecode, 'hex'), MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS);
|
|
62
|
+
const registerer = getRegistererContract(wallet);
|
|
63
|
+
return registerer.methods.broadcast_unconstrained_function(contractClassId, Fr.fromBufferReduce(artifactMetadataHash), Fr.fromBufferReduce(privateArtifactFunctionTreeRoot), padArrayEnd(functionTreePath.map(Fr.fromBufferReduce), Fr.ZERO, ARTIFACT_FUNCTION_TREE_MAX_HEIGHT),
|
|
64
|
+
// eslint-disable-next-line camelcase
|
|
65
|
+
{ selector, metadata_hash: Fr.fromBufferReduce(metadataHash), bytecode });
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0X2Z1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlcGxveW1lbnQvYnJvYWRjYXN0X2Z1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsdURBQXVELEVBQ3ZELDJCQUEyQixFQUMzQiwrQkFBK0IsRUFDL0IsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0IsNEJBQTRCLEdBQzdCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFvQixnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUk5QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsTUFBYyxFQUNkLFFBQTBCLEVBQzFCLFFBQTBCO0lBRTFCLE1BQU0sYUFBYSxHQUFHLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxRQUFRLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFDRCxNQUFNLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQzNE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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PXE } from '@aztec/circuit-types';
|
|
2
1
|
import { ContractArtifact } from '@aztec/foundation/abi';
|
|
3
2
|
import { Point } from '@aztec/foundation/fields';
|
|
3
|
+
import { Wallet } from '../account/wallet.js';
|
|
4
4
|
import { DeployMethod } from '../contract/deploy_method.js';
|
|
5
5
|
import { Contract } from '../contract/index.js';
|
|
6
6
|
/**
|
|
@@ -9,9 +9,10 @@ import { Contract } from '../contract/index.js';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare class ContractDeployer {
|
|
11
11
|
private artifact;
|
|
12
|
-
private
|
|
12
|
+
private wallet;
|
|
13
13
|
private publicKey?;
|
|
14
|
-
|
|
14
|
+
private constructorName?;
|
|
15
|
+
constructor(artifact: ContractArtifact, wallet: Wallet, publicKey?: Point | undefined, constructorName?: string | undefined);
|
|
15
16
|
/**
|
|
16
17
|
* Deploy a contract using the provided ABI and constructor arguments.
|
|
17
18
|
* This function creates a new DeployMethod instance that can be used to send deployment transactions
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract_deployer.d.ts","sourceRoot":"","sources":["../../src/deployment/contract_deployer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS,CAAC;IAClB,OAAO,CAAC,eAAe,CAAC;gBAHhB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,mBAAW,EACrB,eAAe,CAAC,oBAAQ;IAGlC;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAW7B"}
|
|
@@ -6,10 +6,11 @@ import { Contract } from '../contract/index.js';
|
|
|
6
6
|
* @remarks Keeping this around even though we have Aztec.nr contract types because it can be useful for non-TS users.
|
|
7
7
|
*/
|
|
8
8
|
export class ContractDeployer {
|
|
9
|
-
constructor(artifact,
|
|
9
|
+
constructor(artifact, wallet, publicKey, constructorName) {
|
|
10
10
|
this.artifact = artifact;
|
|
11
|
-
this.
|
|
11
|
+
this.wallet = wallet;
|
|
12
12
|
this.publicKey = publicKey;
|
|
13
|
+
this.constructorName = constructorName;
|
|
13
14
|
}
|
|
14
15
|
/**
|
|
15
16
|
* Deploy a contract using the provided ABI and constructor arguments.
|
|
@@ -22,7 +23,7 @@ export class ContractDeployer {
|
|
|
22
23
|
*/
|
|
23
24
|
deploy(...args) {
|
|
24
25
|
const postDeployCtor = (address, wallet) => Contract.at(address, this.artifact, wallet);
|
|
25
|
-
return new DeployMethod(this.publicKey ?? Point.ZERO, this.
|
|
26
|
+
return new DeployMethod(this.publicKey ?? Point.ZERO, this.wallet, this.artifact, postDeployCtor, args, this.constructorName);
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZGVwbG95ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVwbG95bWVudC9jb250cmFjdF9kZXBsb3llci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ1UsUUFBMEIsRUFDMUIsTUFBYyxFQUNkLFNBQXFCLEVBQ3JCLGVBQXdCO1FBSHhCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFZO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFTO0lBQy9CLENBQUM7SUFFSjs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxHQUFHLElBQVc7UUFDMUIsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFxQixFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5RyxPQUFPLElBQUksWUFBWSxDQUNyQixJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQzVCLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFFBQVEsRUFDYixjQUFjLEVBQ2QsSUFBSSxFQUNKLElBQUksQ0FBQyxlQUFlLENBQ3JCLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
2
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
3
|
+
import { Wallet } from '../wallet/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Sets up a call to the canonical deployer contract to publicly deploy a contract instance.
|
|
6
|
+
* @param wallet - The wallet to use for the deployment.
|
|
7
|
+
* @param instance - The instance to deploy.
|
|
8
|
+
* @param opts - Additional options.
|
|
9
|
+
*/
|
|
10
|
+
export declare function deployInstance(wallet: Wallet, instance: ContractInstanceWithAddress, opts?: {
|
|
11
|
+
universalDeploy?: boolean;
|
|
12
|
+
}): ContractFunctionInteraction;
|
|
13
|
+
//# sourceMappingURL=deploy_instance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy_instance.d.ts","sourceRoot":"","sources":["../../src/deployment/deploy_instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,2BAA2B,EACrC,IAAI,GAAE;IAAoE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GACzG,2BAA2B,CAW7B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getDeployerContract } from './protocol_contracts.js';
|
|
2
|
+
/**
|
|
3
|
+
* Sets up a call to the canonical deployer contract to publicly deploy a contract instance.
|
|
4
|
+
* @param wallet - The wallet to use for the deployment.
|
|
5
|
+
* @param instance - The instance to deploy.
|
|
6
|
+
* @param opts - Additional options.
|
|
7
|
+
*/
|
|
8
|
+
export function deployInstance(wallet, instance, opts = {}) {
|
|
9
|
+
const deployer = getDeployerContract(wallet);
|
|
10
|
+
const { salt, contractClassId, portalContractAddress, publicKeysHash } = instance;
|
|
11
|
+
return deployer.methods.deploy(salt, contractClassId, instance.initializationHash, portalContractAddress, publicKeysHash, !!opts.universalDeploy);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2luc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlcGxveW1lbnQvZGVwbG95X2luc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsTUFBYyxFQUNkLFFBQXFDLEVBQ3JDLE9BQXdHLEVBQUU7SUFFMUcsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsTUFBTSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQ2xGLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQzVCLElBQUksRUFDSixlQUFlLEVBQ2YsUUFBUSxDQUFDLGtCQUFrQixFQUMzQixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUN2QixDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deployment/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './contract_deployer.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVwbG95bWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UnsafeContract } from '../contract/unsafe_contract.js';
|
|
2
|
+
import { Wallet } from '../wallet/index.js';
|
|
3
|
+
/** Returns a Contract wrapper for the class registerer. */
|
|
4
|
+
export declare function getRegistererContract(wallet: Wallet): UnsafeContract;
|
|
5
|
+
/** Returns a Contract wrapper for the instance deployer. */
|
|
6
|
+
export declare function getDeployerContract(wallet: Wallet): UnsafeContract;
|
|
7
|
+
//# sourceMappingURL=protocol_contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol_contracts.d.ts","sourceRoot":"","sources":["../../src/deployment/protocol_contracts.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,2DAA2D;AAC3D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,kBAGnD;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,kBAGjD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { getCanonicalClassRegisterer } from '@aztec/protocol-contracts/class-registerer';
|
|
2
|
+
import { getCanonicalInstanceDeployer } from '@aztec/protocol-contracts/instance-deployer';
|
|
3
|
+
import { UnsafeContract } from '../contract/unsafe_contract.js';
|
|
4
|
+
/** Returns a Contract wrapper for the class registerer. */
|
|
5
|
+
export function getRegistererContract(wallet) {
|
|
6
|
+
const { artifact, instance } = getCanonicalClassRegisterer();
|
|
7
|
+
return new UnsafeContract(instance, artifact, wallet);
|
|
8
|
+
}
|
|
9
|
+
/** Returns a Contract wrapper for the instance deployer. */
|
|
10
|
+
export function getDeployerContract(wallet) {
|
|
11
|
+
const { artifact, instance } = getCanonicalInstanceDeployer();
|
|
12
|
+
return new UnsafeContract(instance, artifact, wallet);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2xfY29udHJhY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlcGxveW1lbnQvcHJvdG9jb2xfY29udHJhY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRTNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdoRSwyREFBMkQ7QUFDM0QsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE1BQWM7SUFDbEQsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRywyQkFBMkIsRUFBRSxDQUFDO0lBQzdELE9BQU8sSUFBSSxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsNERBQTREO0FBQzVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUFjO0lBQ2hELE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsNEJBQTRCLEVBQUUsQ0FBQztJQUM5RCxPQUFPLElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEQsQ0FBQyJ9
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ContractArtifact } from '@aztec/foundation/abi';
|
|
2
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
3
|
+
import { Wallet } from '../wallet/index.js';
|
|
4
|
+
/** Sets up a call to register a contract class given its artifact. */
|
|
5
|
+
export declare function registerContractClass(wallet: Wallet, artifact: ContractArtifact): Promise<ContractFunctionInteraction>;
|
|
6
|
+
//# sourceMappingURL=register_class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register_class.d.ts","sourceRoot":"","sources":["../../src/deployment/register_class.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAkB,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,sEAAsE;AACtE,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,2BAA2B,CAAC,CAOtC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS, getContractClassFromArtifact } from '@aztec/circuits.js';
|
|
2
|
+
import { bufferAsFields } from '@aztec/foundation/abi';
|
|
3
|
+
import { getRegistererContract } from './protocol_contracts.js';
|
|
4
|
+
/** Sets up a call to register a contract class given its artifact. */
|
|
5
|
+
export async function registerContractClass(wallet, artifact) {
|
|
6
|
+
const { artifactHash, privateFunctionsRoot, publicBytecodeCommitment, packedBytecode } = getContractClassFromArtifact(artifact);
|
|
7
|
+
const encodedBytecode = bufferAsFields(packedBytecode, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS);
|
|
8
|
+
const registerer = getRegistererContract(wallet);
|
|
9
|
+
await wallet.addCapsule(encodedBytecode);
|
|
10
|
+
return registerer.methods.register(artifactHash, privateFunctionsRoot, publicBytecodeCommitment);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXJfY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVwbG95bWVudC9yZWdpc3Rlcl9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RyxPQUFPLEVBQW9CLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXpFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxNQUFjLEVBQ2QsUUFBMEI7SUFFMUIsTUFBTSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsR0FDcEYsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFBRSx5Q0FBeUMsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QyxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0FBQ25HLENBQUMifQ==
|