@aztec/aztec.js 0.33.0 → 0.35.0
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/contract.d.ts +6 -1
- package/dest/account/contract.d.ts.map +1 -1
- package/dest/account/contract.js +1 -1
- package/dest/account_manager/deploy_account_method.d.ts +15 -0
- package/dest/account_manager/deploy_account_method.d.ts.map +1 -0
- package/dest/account_manager/deploy_account_method.js +43 -0
- package/dest/account_manager/deploy_account_sent_tx.d.ts +3 -3
- package/dest/account_manager/deploy_account_sent_tx.d.ts.map +1 -1
- package/dest/account_manager/deploy_account_sent_tx.js +7 -6
- package/dest/account_manager/index.d.ts +9 -3
- package/dest/account_manager/index.d.ts.map +1 -1
- package/dest/account_manager/index.js +21 -17
- package/dest/contract/batch_call.d.ts.map +1 -1
- package/dest/contract/batch_call.js +5 -2
- package/dest/contract/contract_function_interaction.d.ts +4 -4
- package/dest/contract/contract_function_interaction.d.ts.map +1 -1
- package/dest/contract/contract_function_interaction.js +9 -5
- package/dest/contract/deploy_method.d.ts +11 -4
- package/dest/contract/deploy_method.d.ts.map +1 -1
- package/dest/contract/deploy_method.js +33 -15
- package/dest/contract/deploy_sent_tx.js +2 -2
- package/dest/entrypoint/default_entrypoint.d.ts +3 -3
- package/dest/entrypoint/default_entrypoint.d.ts.map +1 -1
- package/dest/entrypoint/default_entrypoint.js +11 -7
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts +15 -0
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +1 -0
- package/dest/entrypoint/default_multi_call_entrypoint.js +85 -0
- package/dest/entrypoint/entrypoint.d.ts +17 -14
- package/dest/entrypoint/entrypoint.d.ts.map +1 -1
- package/dest/entrypoint/entrypoint.js +5 -2
- package/dest/entrypoint/payload.d.ts +73 -0
- package/dest/entrypoint/payload.d.ts.map +1 -0
- package/dest/entrypoint/payload.js +109 -0
- package/dest/fee/fee_payment_method.d.ts +3 -4
- package/dest/fee/fee_payment_method.d.ts.map +1 -1
- package/dest/fee/native_fee_payment_method.d.ts +4 -5
- package/dest/fee/native_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/native_fee_payment_method.js +5 -5
- package/dest/fee/private_fee_payment_method.d.ts +3 -2
- package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.js +4 -3
- package/dest/fee/public_fee_payment_method.d.ts +3 -3
- package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/public_fee_payment_method.js +4 -3
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -2
- package/dest/utils/authwit.d.ts.map +1 -1
- package/dest/utils/authwit.js +3 -3
- package/dest/utils/cheat_codes.d.ts +4 -4
- package/dest/utils/cheat_codes.d.ts.map +1 -1
- package/dest/utils/cheat_codes.js +11 -11
- package/dest/utils/pxe.js +3 -3
- package/dest/wallet/account_wallet.d.ts +2 -2
- package/dest/wallet/account_wallet.d.ts.map +1 -1
- package/dest/wallet/account_wallet.js +3 -3
- package/dest/wallet/base_wallet.d.ts +2 -2
- package/dest/wallet/base_wallet.d.ts.map +1 -1
- package/dest/wallet/signerless_wallet.d.ts +3 -3
- package/dest/wallet/signerless_wallet.d.ts.map +1 -1
- package/dest/wallet/signerless_wallet.js +3 -3
- package/package.json +7 -7
- package/src/account/contract.ts +7 -1
- package/src/account_manager/deploy_account_method.ts +74 -0
- package/src/account_manager/deploy_account_sent_tx.ts +6 -5
- package/src/account_manager/index.ts +39 -23
- package/src/contract/batch_call.ts +4 -1
- package/src/contract/contract_function_interaction.ts +11 -7
- package/src/contract/deploy_method.ts +44 -22
- package/src/contract/deploy_sent_tx.ts +1 -1
- package/src/entrypoint/default_entrypoint.ts +18 -11
- package/src/entrypoint/default_multi_call_entrypoint.ts +89 -0
- package/src/entrypoint/entrypoint.ts +19 -14
- package/src/entrypoint/payload.ts +144 -0
- package/src/fee/fee_payment_method.ts +3 -4
- package/src/fee/native_fee_payment_method.ts +5 -6
- package/src/fee/private_fee_payment_method.ts +4 -3
- package/src/fee/public_fee_payment_method.ts +4 -4
- package/src/index.ts +2 -2
- package/src/utils/authwit.ts +2 -2
- package/src/utils/cheat_codes.ts +10 -10
- package/src/utils/pxe.ts +2 -2
- package/src/wallet/account_wallet.ts +3 -3
- package/src/wallet/base_wallet.ts +2 -2
- package/src/wallet/signerless_wallet.ts +4 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type CompleteAddress } from '@aztec/circuit-types';
|
|
2
2
|
import { type ContractArtifact } from '@aztec/foundation/abi';
|
|
3
3
|
import { type NodeInfo } from '@aztec/types/interfaces';
|
|
4
|
-
import { type AccountInterface } from './interface.js';
|
|
4
|
+
import { type AccountInterface, type AuthWitnessProvider } from './interface.js';
|
|
5
5
|
/**
|
|
6
6
|
* An account contract instance. Knows its artifact, deployment arguments, how to create
|
|
7
7
|
* transaction execution requests out of function calls, and how to authorize actions.
|
|
@@ -24,5 +24,10 @@ export interface AccountContract {
|
|
|
24
24
|
* @returns An account interface instance for creating tx requests and authorizing actions.
|
|
25
25
|
*/
|
|
26
26
|
getInterface(address: CompleteAddress, nodeInfo: NodeInfo): AccountInterface;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the auth witness provider for the given address.
|
|
29
|
+
* @param address - Address for which to create auth witnesses.
|
|
30
|
+
*/
|
|
31
|
+
getAuthWitnessProvider(address: CompleteAddress): AuthWitnessProvider;
|
|
27
32
|
}
|
|
28
33
|
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/account/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/account/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGjF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,mBAAmB,IAAI,gBAAgB,CAAC;IAExC;;OAEG;IACH,iBAAiB,IAAI,GAAG,EAAE,GAAG,SAAS,CAAC;IAEvC;;;;;;;OAOG;IACH,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IAE7E;;;OAGG;IACH,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,mBAAmB,CAAC;CACvE"}
|
package/dest/account/contract.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export {};
|
|
2
2
|
// docs:end:account-contract-interface
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjb3VudC9jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBc0NBLHNDQUFzQyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type PublicKey } from '@aztec/circuit-types';
|
|
2
|
+
import { type ContractArtifact, type FunctionArtifact } from '@aztec/foundation/abi';
|
|
3
|
+
import { type AuthWitnessProvider } from '../account/interface.js';
|
|
4
|
+
import { type Wallet } from '../account/wallet.js';
|
|
5
|
+
import { type ExecutionRequestInit } from '../api/entrypoint.js';
|
|
6
|
+
import { DeployMethod, type DeployOptions } from '../contract/deploy_method.js';
|
|
7
|
+
/**
|
|
8
|
+
* Contract interaction for deploying an account contract. Handles fee preparation and contract initialization.
|
|
9
|
+
*/
|
|
10
|
+
export declare class DeployAccountMethod extends DeployMethod {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(authWitnessProvider: AuthWitnessProvider, publicKey: PublicKey, wallet: Wallet, artifact: ContractArtifact, args?: any[], constructorNameOrArtifact?: string | FunctionArtifact, feePaymentNameOrArtifact?: string | FunctionArtifact);
|
|
13
|
+
protected getInitializeFunctionCalls(options: DeployOptions): Promise<ExecutionRequestInit>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=deploy_account_method.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy_account_method.d.ts","sourceRoot":"","sources":["../../src/account_manager/deploy_account_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAGtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGhF;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;;gBAKjD,mBAAmB,EAAE,mBAAmB,EACxC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,GAAE,GAAG,EAAO,EAChB,yBAAyB,CAAC,EAAE,MAAM,GAAG,gBAAgB,EACrD,wBAAwB,CAAC,EAAE,MAAM,GAAG,gBAAgB;cAkBtC,0BAA0B,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAyBlG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
var _DeployAccountMethod_authWitnessProvider, _DeployAccountMethod_feePaymentArtifact;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { FunctionData } from '@aztec/circuits.js';
|
|
4
|
+
import { encodeArguments, getFunctionArtifact, } from '@aztec/foundation/abi';
|
|
5
|
+
import { Contract } from '../contract/contract.js';
|
|
6
|
+
import { DeployMethod } from '../contract/deploy_method.js';
|
|
7
|
+
import { EntrypointPayload } from '../entrypoint/payload.js';
|
|
8
|
+
/**
|
|
9
|
+
* Contract interaction for deploying an account contract. Handles fee preparation and contract initialization.
|
|
10
|
+
*/
|
|
11
|
+
export class DeployAccountMethod extends DeployMethod {
|
|
12
|
+
constructor(authWitnessProvider, publicKey, wallet, artifact, args = [], constructorNameOrArtifact, feePaymentNameOrArtifact) {
|
|
13
|
+
super(publicKey, wallet, artifact, (address, wallet) => Contract.at(address, artifact, wallet), args, constructorNameOrArtifact);
|
|
14
|
+
_DeployAccountMethod_authWitnessProvider.set(this, void 0);
|
|
15
|
+
_DeployAccountMethod_feePaymentArtifact.set(this, void 0);
|
|
16
|
+
__classPrivateFieldSet(this, _DeployAccountMethod_authWitnessProvider, authWitnessProvider, "f");
|
|
17
|
+
__classPrivateFieldSet(this, _DeployAccountMethod_feePaymentArtifact, typeof feePaymentNameOrArtifact === 'string'
|
|
18
|
+
? getFunctionArtifact(artifact, feePaymentNameOrArtifact)
|
|
19
|
+
: feePaymentNameOrArtifact, "f");
|
|
20
|
+
}
|
|
21
|
+
async getInitializeFunctionCalls(options) {
|
|
22
|
+
const exec = await super.getInitializeFunctionCalls(options);
|
|
23
|
+
if (options.fee && __classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f")) {
|
|
24
|
+
const { address } = this.getInstance();
|
|
25
|
+
const emptyAppPayload = EntrypointPayload.fromAppExecution([]);
|
|
26
|
+
const feePayload = await EntrypointPayload.fromFeeOptions(options?.fee);
|
|
27
|
+
exec.calls.push({
|
|
28
|
+
to: address,
|
|
29
|
+
args: encodeArguments(__classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f"), [emptyAppPayload, feePayload]),
|
|
30
|
+
functionData: FunctionData.fromAbi(__classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f")),
|
|
31
|
+
});
|
|
32
|
+
exec.authWitnesses ?? (exec.authWitnesses = []);
|
|
33
|
+
exec.packedArguments ?? (exec.packedArguments = []);
|
|
34
|
+
exec.authWitnesses.push(await __classPrivateFieldGet(this, _DeployAccountMethod_authWitnessProvider, "f").createAuthWit(emptyAppPayload.hash()));
|
|
35
|
+
exec.authWitnesses.push(await __classPrivateFieldGet(this, _DeployAccountMethod_authWitnessProvider, "f").createAuthWit(feePayload.hash()));
|
|
36
|
+
exec.packedArguments.push(...emptyAppPayload.packedArguments);
|
|
37
|
+
exec.packedArguments.push(...feePayload.packedArguments);
|
|
38
|
+
}
|
|
39
|
+
return exec;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
_DeployAccountMethod_authWitnessProvider = new WeakMap(), _DeployAccountMethod_feePaymentArtifact = new WeakMap();
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnRfbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY291bnRfbWFuYWdlci9kZXBsb3lfYWNjb3VudF9tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUdMLGVBQWUsRUFDZixtQkFBbUIsR0FDcEIsTUFBTSx1QkFBdUIsQ0FBQztBQUsvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBc0IsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RDs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUFZO0lBSW5ELFlBQ0UsbUJBQXdDLEVBQ3hDLFNBQW9CLEVBQ3BCLE1BQWMsRUFDZCxRQUEwQixFQUMxQixPQUFjLEVBQUUsRUFDaEIseUJBQXFELEVBQ3JELHdCQUFvRDtRQUVwRCxLQUFLLENBQ0gsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQzNELElBQUksRUFDSix5QkFBeUIsQ0FDMUIsQ0FBQztRQW5CSiwyREFBMEM7UUFDMUMsMERBQWtEO1FBb0JoRCx1QkFBQSxJQUFJLDRDQUF3QixtQkFBbUIsTUFBQSxDQUFDO1FBQ2hELHVCQUFBLElBQUksMkNBQ0YsT0FBTyx3QkFBd0IsS0FBSyxRQUFRO1lBQzFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUM7WUFDekQsQ0FBQyxDQUFDLHdCQUF3QixNQUFBLENBQUM7SUFDakMsQ0FBQztJQUVTLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxPQUFzQjtRQUMvRCxNQUFNLElBQUksR0FBRyxNQUFNLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3RCxJQUFJLE9BQU8sQ0FBQyxHQUFHLElBQUksdUJBQUEsSUFBSSwrQ0FBb0IsRUFBRSxDQUFDO1lBQzVDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRXhFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNkLEVBQUUsRUFBRSxPQUFPO2dCQUNYLElBQUksRUFBRSxlQUFlLENBQUMsdUJBQUEsSUFBSSwrQ0FBb0IsRUFBRSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDOUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsdUJBQUEsSUFBSSwrQ0FBb0IsQ0FBQzthQUM3RCxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsYUFBYSxLQUFsQixJQUFJLENBQUMsYUFBYSxHQUFLLEVBQUUsRUFBQztZQUMxQixJQUFJLENBQUMsZUFBZSxLQUFwQixJQUFJLENBQUMsZUFBZSxHQUFLLEVBQUUsRUFBQztZQUU1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLHVCQUFBLElBQUksZ0RBQXFCLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSx1QkFBQSxJQUFJLGdEQUFxQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiJ9
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type TxHash, type TxReceipt } from '@aztec/circuit-types';
|
|
1
|
+
import { type PXE, type TxHash, type TxReceipt } from '@aztec/circuit-types';
|
|
2
2
|
import { type FieldsOf } from '@aztec/foundation/types';
|
|
3
3
|
import { type Wallet } from '../account/index.js';
|
|
4
4
|
import { SentTx, type WaitOpts } from '../contract/index.js';
|
|
@@ -11,8 +11,8 @@ export type DeployAccountTxReceipt = FieldsOf<TxReceipt> & {
|
|
|
11
11
|
* A deployment transaction for an account contract sent to the network, extending SentTx with methods to get the resulting wallet.
|
|
12
12
|
*/
|
|
13
13
|
export declare class DeployAccountSentTx extends SentTx {
|
|
14
|
-
private
|
|
15
|
-
constructor(
|
|
14
|
+
private getWalletPromise;
|
|
15
|
+
constructor(pxe: PXE, txHashPromise: Promise<TxHash>, getWalletPromise: Promise<Wallet>);
|
|
16
16
|
/**
|
|
17
17
|
* Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
|
|
18
18
|
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_account_sent_tx.d.ts","sourceRoot":"","sources":["../../src/account_manager/deploy_account_sent_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy_account_sent_tx.d.ts","sourceRoot":"","sources":["../../src/account_manager/deploy_account_sent_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAmB,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG9E,4FAA4F;AAC5F,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG;IACzD,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,MAAM;IACS,OAAO,CAAC,gBAAgB;gBAAlE,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,EAAU,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC;IAI/F;;;;OAIG;IACU,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD;;;;OAIG;IACU,IAAI,CAAC,IAAI,GAAE,QAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAMrF"}
|
|
@@ -4,9 +4,9 @@ import { waitForAccountSynch } from '../utils/account.js';
|
|
|
4
4
|
* A deployment transaction for an account contract sent to the network, extending SentTx with methods to get the resulting wallet.
|
|
5
5
|
*/
|
|
6
6
|
export class DeployAccountSentTx extends SentTx {
|
|
7
|
-
constructor(
|
|
8
|
-
super(
|
|
9
|
-
this.
|
|
7
|
+
constructor(pxe, txHashPromise, getWalletPromise) {
|
|
8
|
+
super(pxe, txHashPromise);
|
|
9
|
+
this.getWalletPromise = getWalletPromise;
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
|
|
@@ -24,8 +24,9 @@ export class DeployAccountSentTx extends SentTx {
|
|
|
24
24
|
*/
|
|
25
25
|
async wait(opts = DefaultWaitOpts) {
|
|
26
26
|
const receipt = await super.wait(opts);
|
|
27
|
-
await
|
|
28
|
-
|
|
27
|
+
const wallet = await this.getWalletPromise;
|
|
28
|
+
await waitForAccountSynch(this.pxe, wallet.getCompleteAddress(), opts);
|
|
29
|
+
return { ...receipt, wallet };
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnRfc2VudF90eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY2NvdW50X21hbmFnZXIvZGVwbG95X2FjY291bnRfc2VudF90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVExRDs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxNQUFNO0lBQzdDLFlBQVksR0FBUSxFQUFFLGFBQThCLEVBQVUsZ0JBQWlDO1FBQzdGLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFEa0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtJQUUvRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBZTtRQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFpQixlQUFlO1FBQ2hELE1BQU0sT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMzQyxNQUFNLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkUsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7Q0FDRiJ9
|
|
@@ -4,10 +4,15 @@ import { type ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
|
4
4
|
import { type AccountContract } from '../account/contract.js';
|
|
5
5
|
import { type Salt } from '../account/index.js';
|
|
6
6
|
import { type AccountInterface } from '../account/interface.js';
|
|
7
|
-
import { type
|
|
7
|
+
import { type DeployOptions } from '../contract/deploy_method.js';
|
|
8
8
|
import { type WaitOpts } from '../contract/sent_tx.js';
|
|
9
9
|
import { AccountWalletWithPrivateKey } from '../wallet/index.js';
|
|
10
|
+
import { DeployAccountMethod } from './deploy_account_method.js';
|
|
10
11
|
import { DeployAccountSentTx } from './deploy_account_sent_tx.js';
|
|
12
|
+
/**
|
|
13
|
+
* Options to deploy an account contract.
|
|
14
|
+
*/
|
|
15
|
+
export type DeployAccountOptions = Pick<DeployOptions, 'fee' | 'skipClassRegistration' | 'skipPublicDeployment'>;
|
|
11
16
|
/**
|
|
12
17
|
* Manages a user account. Provides methods for calculating the account's address, deploying the account contract,
|
|
13
18
|
* and creating and registering the user wallet in the PXE Service.
|
|
@@ -62,15 +67,16 @@ export declare class AccountManager {
|
|
|
62
67
|
* grained control on when to create, simulate, and send the deployment tx.
|
|
63
68
|
* @returns A DeployMethod instance that deploys this account contract.
|
|
64
69
|
*/
|
|
65
|
-
getDeployMethod(): Promise<
|
|
70
|
+
getDeployMethod(): Promise<DeployAccountMethod>;
|
|
66
71
|
/**
|
|
67
72
|
* Deploys the account contract that backs this account.
|
|
68
73
|
* Does not register the associated class nor publicly deploy the instance by default.
|
|
69
74
|
* Uses the salt provided in the constructor or a randomly generated one.
|
|
70
75
|
* Registers the account in the PXE Service before deploying the contract.
|
|
76
|
+
* @param opts - Fee options to be used for the deployment.
|
|
71
77
|
* @returns A SentTx object that can be waited to get the associated Wallet.
|
|
72
78
|
*/
|
|
73
|
-
deploy():
|
|
79
|
+
deploy(opts?: DeployAccountOptions): DeployAccountSentTx;
|
|
74
80
|
/**
|
|
75
81
|
* Deploys the account contract that backs this account if needed and awaits the tx to be mined.
|
|
76
82
|
* Uses the salt provided in the constructor or a randomly generated one. If no initialization
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account_manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account_manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIxE,OAAO,EAAE,2BAA2B,EAAoB,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,uBAAuB,GAAG,sBAAsB,CAAC,CAAC;AAEjH;;;GAGG;AACH,qBAAa,cAAc;;IAWvB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,eAAe;IAZzB,gDAAgD;IAChD,SAAgB,IAAI,EAAE,EAAE,CAAC;IAGzB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAA8B;IAC/C,OAAO,CAAC,mBAAmB,CAAC,CAAY;IACxC,OAAO,CAAC,YAAY,CAAC,CAAsB;gBAGjC,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,kBAAkB,EACxC,eAAe,EAAE,eAAe,EACxC,IAAI,CAAC,EAAE,IAAI;IAKb,SAAS,CAAC,sBAAsB;IAOhC;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAMpD;;;;OAIG;IACI,kBAAkB,IAAI,eAAe;IAS5C;;;;OAIG;IACI,WAAW,IAAI,2BAA2B;IAYjD;;;;OAIG;IACU,SAAS,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAK9D;;;;;;OAMG;IACU,QAAQ,CAAC,IAAI,GAAE,QAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAW7F;;;;;OAKG;IACU,eAAe;IA6B5B;;;;;;;OAOG;IACI,MAAM,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,mBAAmB;IAgB/D;;;;;;OAMG;IACU,SAAS,CAAC,IAAI,GAAE,QAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAK9F;;OAEG;IACI,YAAY;CAQpB"}
|
|
@@ -4,10 +4,11 @@ import { CompleteAddress } from '@aztec/circuit-types';
|
|
|
4
4
|
import { getContractInstanceFromDeployParams } from '@aztec/circuits.js';
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
import { DefaultWaitOpts } from '../contract/sent_tx.js';
|
|
7
|
-
import {
|
|
7
|
+
import { DefaultMultiCallEntrypoint } from '../entrypoint/default_multi_call_entrypoint.js';
|
|
8
8
|
import { waitForAccountSynch } from '../utils/account.js';
|
|
9
9
|
import { generatePublicKey } from '../utils/index.js';
|
|
10
10
|
import { AccountWalletWithPrivateKey, SignerlessWallet } from '../wallet/index.js';
|
|
11
|
+
import { DeployAccountMethod } from './deploy_account_method.js';
|
|
11
12
|
import { DeployAccountSentTx } from './deploy_account_sent_tx.js';
|
|
12
13
|
/**
|
|
13
14
|
* Manages a user account. Provides methods for calculating the account's address, deploying the account contract,
|
|
@@ -19,7 +20,7 @@ export class AccountManager {
|
|
|
19
20
|
this.pxe = pxe;
|
|
20
21
|
this.encryptionPrivateKey = encryptionPrivateKey;
|
|
21
22
|
this.accountContract = accountContract;
|
|
22
|
-
this.salt = salt ? new Fr(salt) : Fr.random();
|
|
23
|
+
this.salt = salt !== undefined ? new Fr(salt) : Fr.random();
|
|
23
24
|
}
|
|
24
25
|
getEncryptionPublicKey() {
|
|
25
26
|
if (!this.encryptionPublicKey) {
|
|
@@ -103,13 +104,13 @@ export class AccountManager {
|
|
|
103
104
|
}
|
|
104
105
|
await __classPrivateFieldGet(this, _AccountManager_instances, "m", _AccountManager_register).call(this);
|
|
105
106
|
const encryptionPublicKey = this.getEncryptionPublicKey();
|
|
106
|
-
|
|
107
|
+
const { chainId, protocolVersion } = await this.pxe.getNodeInfo();
|
|
108
|
+
const deployWallet = new SignerlessWallet(this.pxe, new DefaultMultiCallEntrypoint(chainId, protocolVersion));
|
|
109
|
+
// We use a signerless wallet with the multi call entrypoint in order to make multiple calls in one go
|
|
107
110
|
// If we used getWallet, the deployment would get routed via the account contract entrypoint
|
|
108
|
-
//
|
|
109
|
-
const deployWallet = new SignerlessWallet(this.pxe);
|
|
110
|
-
const deployer = new ContractDeployer(this.accountContract.getContractArtifact(), deployWallet, encryptionPublicKey);
|
|
111
|
+
// and it can't be used unless the contract is initialized
|
|
111
112
|
const args = this.accountContract.getDeploymentArgs() ?? [];
|
|
112
|
-
this.deployMethod =
|
|
113
|
+
this.deployMethod = new DeployAccountMethod(this.accountContract.getAuthWitnessProvider(this.getCompleteAddress()), encryptionPublicKey, deployWallet, this.accountContract.getContractArtifact(), args, 'constructor', 'entrypoint');
|
|
113
114
|
}
|
|
114
115
|
return this.deployMethod;
|
|
115
116
|
}
|
|
@@ -118,18 +119,21 @@ export class AccountManager {
|
|
|
118
119
|
* Does not register the associated class nor publicly deploy the instance by default.
|
|
119
120
|
* Uses the salt provided in the constructor or a randomly generated one.
|
|
120
121
|
* Registers the account in the PXE Service before deploying the contract.
|
|
122
|
+
* @param opts - Fee options to be used for the deployment.
|
|
121
123
|
* @returns A SentTx object that can be waited to get the associated Wallet.
|
|
122
124
|
*/
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
const sentTx = deployMethod.send({
|
|
125
|
+
deploy(opts) {
|
|
126
|
+
const sentTx = this.getDeployMethod()
|
|
127
|
+
.then(deployMethod => deployMethod.send({
|
|
127
128
|
contractAddressSalt: this.salt,
|
|
128
|
-
skipClassRegistration: true,
|
|
129
|
-
skipPublicDeployment: true,
|
|
129
|
+
skipClassRegistration: opts?.skipClassRegistration ?? true,
|
|
130
|
+
skipPublicDeployment: opts?.skipPublicDeployment ?? true,
|
|
131
|
+
skipInitialization: false,
|
|
130
132
|
universalDeploy: true,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
+
fee: opts?.fee,
|
|
134
|
+
}))
|
|
135
|
+
.then(tx => tx.getTxHash());
|
|
136
|
+
return new DeployAccountSentTx(this.pxe, sentTx, this.getWallet());
|
|
133
137
|
}
|
|
134
138
|
/**
|
|
135
139
|
* Deploys the account contract that backs this account if needed and awaits the tx to be mined.
|
|
@@ -139,7 +143,7 @@ export class AccountManager {
|
|
|
139
143
|
* @returns A Wallet instance.
|
|
140
144
|
*/
|
|
141
145
|
async waitSetup(opts = DefaultWaitOpts) {
|
|
142
|
-
await (this.isDeployable() ? this.deploy().
|
|
146
|
+
await (this.isDeployable() ? this.deploy().wait(opts) : this.register());
|
|
143
147
|
return this.getWallet();
|
|
144
148
|
}
|
|
145
149
|
/**
|
|
@@ -153,4 +157,4 @@ _AccountManager_instances = new WeakSet(), _AccountManager_register = async func
|
|
|
153
157
|
const completeAddress = this.getCompleteAddress();
|
|
154
158
|
await this.pxe.registerAccount(this.encryptionPrivateKey, completeAddress.partialAddress);
|
|
155
159
|
};
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjb3VudF9tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBcUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRixPQUFPLEVBQWtCLG1DQUFtQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBTzlDLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPbEU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFVekIsWUFDVSxHQUFRLEVBQ1Isb0JBQXdDLEVBQ3hDLGVBQWdDLEVBQ3hDLElBQVc7O1FBSEgsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUNSLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBb0I7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBR3hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRVMsc0JBQXNCO1FBQzlCLElB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch_call.d.ts","sourceRoot":"","sources":["../../src/contract/batch_call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEjG,qFAAqF;AACrF,qBAAa,SAAU,SAAQ,uBAAuB;IACxC,SAAS,CAAC,MAAM,EAAE,MAAM;IAAE,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE;gBAA/C,MAAM,EAAE,MAAM,EAAY,KAAK,EAAE,YAAY,EAAE;IAIrE;;;;;OAKG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"batch_call.d.ts","sourceRoot":"","sources":["../../src/contract/batch_call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEjG,qFAAqF;AACrF,qBAAa,SAAU,SAAQ,uBAAuB;IACxC,SAAS,CAAC,MAAM,EAAE,MAAM;IAAE,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE;gBAA/C,MAAM,EAAE,MAAM,EAAY,KAAK,EAAE,YAAY,EAAE;IAIrE;;;;;OAKG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAS3E"}
|
|
@@ -14,9 +14,12 @@ export class BatchCall extends BaseContractInteraction {
|
|
|
14
14
|
*/
|
|
15
15
|
async create(opts) {
|
|
16
16
|
if (!this.txRequest) {
|
|
17
|
-
this.txRequest = await this.wallet.createTxExecutionRequest(
|
|
17
|
+
this.txRequest = await this.wallet.createTxExecutionRequest({
|
|
18
|
+
calls: this.calls,
|
|
19
|
+
fee: opts?.fee,
|
|
20
|
+
});
|
|
18
21
|
}
|
|
19
22
|
return this.txRequest;
|
|
20
23
|
}
|
|
21
24
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfY2FsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXRjaF9jYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSx1QkFBdUIsRUFBMEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVqRyxxRkFBcUY7QUFDckYsTUFBTSxPQUFPLFNBQVUsU0FBUSx1QkFBdUI7SUFDcEQsWUFBc0IsTUFBYyxFQUFZLEtBQXFCO1FBQ25FLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQURNLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBWSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUVyRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQXdCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUM7Z0JBQzFELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0NBQ0YifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FunctionCall, TxExecutionRequest } from '@aztec/circuit-types';
|
|
2
|
-
import { type AztecAddress } from '@aztec/circuits.js';
|
|
2
|
+
import { type AztecAddress, GasSettings } from '@aztec/circuits.js';
|
|
3
3
|
import { type FunctionAbi } from '@aztec/foundation/abi';
|
|
4
4
|
import { type Wallet } from '../account/wallet.js';
|
|
5
5
|
import { BaseContractInteraction, type SendMethodOptions } from './base_contract_interaction.js';
|
|
@@ -10,10 +10,10 @@ export { SendMethodOptions };
|
|
|
10
10
|
* Disregarded for simulation of public functions
|
|
11
11
|
*/
|
|
12
12
|
export type SimulateMethodOptions = {
|
|
13
|
-
/**
|
|
14
|
-
* The sender's Aztec address.
|
|
15
|
-
*/
|
|
13
|
+
/** The sender's Aztec address. */
|
|
16
14
|
from?: AztecAddress;
|
|
15
|
+
/** Gas settings for the simulation. */
|
|
16
|
+
gasSettings?: GasSettings;
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
19
|
* This is the class that is returned when calling e.g. `contract.methods.myMethod(arg0, arg1)`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract_function_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/contract_function_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"contract_function_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/contract_function_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAgB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,KAAK,YAAY,EAAgB,WAAW,EAAa,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiC,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,kCAAkC;IAClC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,uCAAuC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,uBAAuB;IAEpE,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,eAAe,EAAE,YAAY;IACvC,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE;gBAHX,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,GAAG,EAAE;IAQvB;;;;;OAKG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAa1E;;;;OAIG;IACI,OAAO,IAAI,YAAY;IAM9B;;;;;;;;;;;;;;OAcG;IACU,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;CA+BzE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { FunctionData, TxContext } from '@aztec/circuits.js';
|
|
1
|
+
import { PackedValues, TxExecutionRequest } from '@aztec/circuit-types';
|
|
2
|
+
import { FunctionData, GasSettings, TxContext } from '@aztec/circuits.js';
|
|
3
3
|
import { FunctionType, encodeArguments } from '@aztec/foundation/abi';
|
|
4
4
|
import { BaseContractInteraction } from './base_contract_interaction.js';
|
|
5
5
|
/**
|
|
@@ -28,7 +28,10 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
28
28
|
throw new Error("Can't call `create` on an unconstrained function.");
|
|
29
29
|
}
|
|
30
30
|
if (!this.txRequest) {
|
|
31
|
-
this.txRequest = await this.wallet.createTxExecutionRequest(
|
|
31
|
+
this.txRequest = await this.wallet.createTxExecutionRequest({
|
|
32
|
+
calls: [this.request()],
|
|
33
|
+
fee: opts?.fee,
|
|
34
|
+
});
|
|
32
35
|
}
|
|
33
36
|
return this.txRequest;
|
|
34
37
|
}
|
|
@@ -66,7 +69,7 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
66
69
|
// TODO: The return type here needs to be fixed! @LHerskind
|
|
67
70
|
if (this.functionDao.functionType == FunctionType.SECRET) {
|
|
68
71
|
const nodeInfo = await this.wallet.getNodeInfo();
|
|
69
|
-
const packedArgs =
|
|
72
|
+
const packedArgs = PackedValues.fromValues(encodeArguments(this.functionDao, this.args));
|
|
70
73
|
const txRequest = TxExecutionRequest.from({
|
|
71
74
|
argsHash: packedArgs.hash,
|
|
72
75
|
origin: this.contractAddress,
|
|
@@ -74,6 +77,7 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
74
77
|
txContext: TxContext.empty(nodeInfo.chainId, nodeInfo.protocolVersion),
|
|
75
78
|
packedArguments: [packedArgs],
|
|
76
79
|
authWitnesses: [],
|
|
80
|
+
gasSettings: options.gasSettings ?? GasSettings.simulation(),
|
|
77
81
|
});
|
|
78
82
|
const simulatedTx = await this.pxe.simulateTx(txRequest, false, options.from ?? this.wallet.getAddress());
|
|
79
83
|
return simulatedTx.privateReturnValues?.[0];
|
|
@@ -86,4 +90,4 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
86
90
|
}
|
|
87
91
|
}
|
|
88
92
|
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRixPQUFPLEVBQXFCLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0YsT0FBTyxFQUFvQixZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHeEYsT0FBTyxFQUFFLHVCQUF1QixFQUEwQixNQUFNLGdDQUFnQyxDQUFDO0FBZ0JqRzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsdUJBQXVCO0lBQ3RFLFlBQ1ksTUFBYyxFQUNkLGVBQTZCLEVBQzdCLFdBQXdCLEVBQ3hCLElBQVc7UUFFckIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBTEosV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFjO1FBQzdCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFNBQUksR0FBSixJQUFJLENBQU87UUFHckIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLDZFQUE2RSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3hHLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQXdCO1FBQzFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lB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
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type PublicKey, type Tx, type TxExecutionRequest } from '@aztec/circuit-types';
|
|
2
2
|
import { AztecAddress } from '@aztec/circuits.js';
|
|
3
3
|
import { type ContractArtifact, type FunctionArtifact } from '@aztec/foundation/abi';
|
|
4
4
|
import { type EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
import { type Fr } from '@aztec/foundation/fields';
|
|
6
6
|
import { type ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
7
7
|
import { type Wallet } from '../account/index.js';
|
|
8
|
+
import { type ExecutionRequestInit } from '../entrypoint/entrypoint.js';
|
|
8
9
|
import { BaseContractInteraction, type SendMethodOptions } from './base_contract_interaction.js';
|
|
9
10
|
import { type Contract } from './contract.js';
|
|
10
11
|
import { type ContractBase } from './contract_base.js';
|
|
@@ -42,7 +43,7 @@ export declare class DeployMethod<TContract extends ContractBase = Contract> ext
|
|
|
42
43
|
/** Constructor function to call. */
|
|
43
44
|
private constructorArtifact;
|
|
44
45
|
/** Cached call to request() */
|
|
45
|
-
private functionCalls
|
|
46
|
+
private functionCalls?;
|
|
46
47
|
private log;
|
|
47
48
|
constructor(publicKey: PublicKey, wallet: Wallet, artifact: ContractArtifact, postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>, args?: any[], constructorNameOrArtifact?: string | FunctionArtifact);
|
|
48
49
|
/**
|
|
@@ -63,13 +64,19 @@ export declare class DeployMethod<TContract extends ContractBase = Contract> ext
|
|
|
63
64
|
* @remarks This method does not have the same return type as the `request` in the ContractInteraction object,
|
|
64
65
|
* it returns a promise for an array instead of a function call directly.
|
|
65
66
|
*/
|
|
66
|
-
request(options?: DeployOptions): Promise<
|
|
67
|
+
request(options?: DeployOptions): Promise<ExecutionRequestInit>;
|
|
67
68
|
/**
|
|
68
69
|
* Returns calls for registration of the class and deployment of the instance, depending on the provided options.
|
|
69
70
|
* @param options - Deployment options.
|
|
70
71
|
* @returns A function call array with potentially requests to the class registerer and instance deployer.
|
|
71
72
|
*/
|
|
72
|
-
protected getDeploymentFunctionCalls(options?: DeployOptions): Promise<
|
|
73
|
+
protected getDeploymentFunctionCalls(options?: DeployOptions): Promise<ExecutionRequestInit>;
|
|
74
|
+
/**
|
|
75
|
+
* Returns the calls necessary to initialize the contract.
|
|
76
|
+
* @param options - Deployment options.
|
|
77
|
+
* @returns - An array of function calls.
|
|
78
|
+
*/
|
|
79
|
+
protected getInitializeFunctionCalls(options: DeployOptions): Promise<ExecutionRequestInit>;
|
|
73
80
|
/**
|
|
74
81
|
* Send the contract deployment transaction using the provided options.
|
|
75
82
|
* This function extends the 'send' method from the ContractFunctionInteraction class,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_method.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_method.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"deploy_method.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_method.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,10 +35,6 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
35
35
|
*/
|
|
36
36
|
async create(options = {}) {
|
|
37
37
|
if (!this.txRequest) {
|
|
38
|
-
const calls = await this.request(options);
|
|
39
|
-
if (calls.length === 0) {
|
|
40
|
-
throw new Error(`No function calls needed to deploy contract ${this.artifact.name}`);
|
|
41
|
-
}
|
|
42
38
|
this.txRequest = await this.wallet.createTxExecutionRequest(await this.request(options));
|
|
43
39
|
// TODO: Should we add the contracts to the DB here, or once the tx has been sent or mined?
|
|
44
40
|
await this.pxe.registerContract({ artifact: this.artifact, instance: this.instance });
|
|
@@ -55,13 +51,17 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
55
51
|
*/
|
|
56
52
|
async request(options = {}) {
|
|
57
53
|
if (!this.functionCalls) {
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
if (
|
|
61
|
-
|
|
62
|
-
calls.push(constructorCall.request());
|
|
54
|
+
const deployment = await this.getDeploymentFunctionCalls(options);
|
|
55
|
+
const bootstrap = await this.getInitializeFunctionCalls(options);
|
|
56
|
+
if (deployment.calls.length + bootstrap.calls.length === 0) {
|
|
57
|
+
throw new Error(`No function calls needed to deploy contract ${this.artifact.name}`);
|
|
63
58
|
}
|
|
64
|
-
this.functionCalls =
|
|
59
|
+
this.functionCalls = {
|
|
60
|
+
calls: [...deployment.calls, ...bootstrap.calls],
|
|
61
|
+
authWitnesses: [...(deployment.authWitnesses ?? []), ...(bootstrap.authWitnesses ?? [])],
|
|
62
|
+
packedArguments: [...(deployment.packedArguments ?? []), ...(bootstrap.packedArguments ?? [])],
|
|
63
|
+
fee: options.fee,
|
|
64
|
+
};
|
|
65
65
|
}
|
|
66
66
|
return this.functionCalls;
|
|
67
67
|
}
|
|
@@ -83,10 +83,10 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
83
83
|
// Register the contract class if it hasn't been published already.
|
|
84
84
|
if (!options.skipClassRegistration) {
|
|
85
85
|
if (await this.pxe.isContractClassPubliclyRegistered(contractClass.id)) {
|
|
86
|
-
this.log(`Skipping registration of already registered contract class ${contractClass.id.toString()} for ${instance.address.toString()}`);
|
|
86
|
+
this.log.debug(`Skipping registration of already registered contract class ${contractClass.id.toString()} for ${instance.address.toString()}`);
|
|
87
87
|
}
|
|
88
88
|
else {
|
|
89
|
-
this.log(`Creating request for registering contract class ${contractClass.id.toString()} as part of deployment for ${instance.address.toString()}`);
|
|
89
|
+
this.log.info(`Creating request for registering contract class ${contractClass.id.toString()} as part of deployment for ${instance.address.toString()}`);
|
|
90
90
|
calls.push((await registerContractClass(this.wallet, this.artifact)).request());
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -94,7 +94,25 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
94
94
|
if (!options.skipPublicDeployment) {
|
|
95
95
|
calls.push(deployInstance(this.wallet, instance).request());
|
|
96
96
|
}
|
|
97
|
-
return
|
|
97
|
+
return {
|
|
98
|
+
calls,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Returns the calls necessary to initialize the contract.
|
|
103
|
+
* @param options - Deployment options.
|
|
104
|
+
* @returns - An array of function calls.
|
|
105
|
+
*/
|
|
106
|
+
getInitializeFunctionCalls(options) {
|
|
107
|
+
const { address } = this.getInstance(options);
|
|
108
|
+
const calls = [];
|
|
109
|
+
if (this.constructorArtifact && !options.skipInitialization) {
|
|
110
|
+
const constructorCall = new ContractFunctionInteraction(this.wallet, address, this.constructorArtifact, this.args);
|
|
111
|
+
calls.push(constructorCall.request());
|
|
112
|
+
}
|
|
113
|
+
return Promise.resolve({
|
|
114
|
+
calls,
|
|
115
|
+
});
|
|
98
116
|
}
|
|
99
117
|
/**
|
|
100
118
|
* Send the contract deployment transaction using the provided options.
|
|
@@ -107,7 +125,7 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
107
125
|
send(options = {}) {
|
|
108
126
|
const txHashPromise = super.send(options).getTxHash();
|
|
109
127
|
const instance = this.getInstance(options);
|
|
110
|
-
this.log(`Sent deployment tx of ${this.artifact.name} contract with deployment address ${instance.address.toString()}`);
|
|
128
|
+
this.log.debug(`Sent deployment tx of ${this.artifact.name} contract with deployment address ${instance.address.toString()}`);
|
|
111
129
|
return new DeploySentTx(this.pxe, txHashPromise, this.postDeployCtor, instance);
|
|
112
130
|
}
|
|
113
131
|
/**
|
|
@@ -146,4 +164,4 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
146
164
|
return this.instance && computePartialAddress(this.instance);
|
|
147
165
|
}
|
|
148
166
|
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X21ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9kZXBsb3lfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUM1QixtQ0FBbUMsR0FDcEMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQWdELGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQTBCLE1BQU0sZ0NBQWdDLENBQUM7QUFHakcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBcUJuRCxvREFBb0Q7QUFFcEQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFlBQXdELFNBQVEsdUJBQXVCO0lBWWxHLFlBQ1UsU0FBb0IsRUFDbEIsTUFBYyxFQUNoQixRQUEwQixFQUMxQixjQUE2RSxFQUM3RSxPQUFjLEVBQUUsRUFDeEIseUJBQXFEO1FBRXJELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQVBOLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBK0Q7UUFDN0UsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWhCMUIsNENBQTRDO1FBQ3BDLGFBQVEsR0FBaUMsU0FBUyxDQUFDO1FBUW5ELFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyx3QkFBd0Is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
|