@aztec/aztec.js 0.27.1 → 0.28.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 +2 -2
- package/dest/account/contract.d.ts.map +1 -1
- package/dest/account_manager/index.d.ts +9 -9
- package/dest/account_manager/index.d.ts.map +1 -1
- package/dest/account_manager/index.js +22 -17
- package/dest/contract/deploy_method.d.ts +5 -1
- package/dest/contract/deploy_method.d.ts.map +1 -1
- package/dest/contract/deploy_method.js +29 -15
- package/dest/contract/sent_tx.d.ts.map +1 -1
- package/dest/contract/sent_tx.js +2 -2
- package/dest/fee/private_fee_payment_method.d.ts +12 -2
- package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.js +13 -5
- 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 +1 -1
- package/dest/wallet/account_wallet.d.ts.map +1 -1
- package/dest/wallet/account_wallet.js +3 -1
- package/package.json +7 -7
- package/src/account/contract.ts +2 -2
- package/src/account_manager/index.ts +24 -23
- package/src/contract/deploy_method.ts +41 -15
- package/src/contract/sent_tx.ts +3 -1
- package/src/fee/private_fee_payment_method.ts +14 -5
- package/src/fee/public_fee_payment_method.ts +3 -3
- package/src/wallet/account_wallet.ts +2 -0
|
@@ -12,9 +12,9 @@ export interface AccountContract {
|
|
|
12
12
|
*/
|
|
13
13
|
getContractArtifact(): ContractArtifact;
|
|
14
14
|
/**
|
|
15
|
-
* Returns the deployment arguments for this instance.
|
|
15
|
+
* Returns the deployment arguments for this instance, or undefined if this contract does not require deployment.
|
|
16
16
|
*/
|
|
17
|
-
getDeploymentArgs(): any[];
|
|
17
|
+
getDeploymentArgs(): any[] | undefined;
|
|
18
18
|
/**
|
|
19
19
|
* Returns the account interface for this account contract given a deployment at the provided address.
|
|
20
20
|
* The account interface is responsible for assembling tx requests given requested function calls, and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/account/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,mBAAmB,IAAI,gBAAgB,CAAC;IAExC;;OAEG;IACH,iBAAiB,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/account/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD;;;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;CAC9E"}
|
|
@@ -65,23 +65,23 @@ export declare class AccountManager {
|
|
|
65
65
|
getDeployMethod(): Promise<DeployMethod<import("../index.js").Contract>>;
|
|
66
66
|
/**
|
|
67
67
|
* Deploys the account contract that backs this account.
|
|
68
|
-
* Does not register the associated class nor publicly deploy the instance.
|
|
68
|
+
* Does not register the associated class nor publicly deploy the instance by default.
|
|
69
69
|
* Uses the salt provided in the constructor or a randomly generated one.
|
|
70
|
-
* Note that if the Account is constructed with an explicit complete address
|
|
71
|
-
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
72
70
|
* Registers the account in the PXE Service before deploying the contract.
|
|
73
71
|
* @returns A SentTx object that can be waited to get the associated Wallet.
|
|
74
72
|
*/
|
|
75
73
|
deploy(): Promise<DeployAccountSentTx>;
|
|
76
74
|
/**
|
|
77
|
-
* Deploys the account contract that backs this account and awaits the tx to be mined.
|
|
78
|
-
* Uses the salt provided in the constructor or a randomly generated one.
|
|
79
|
-
*
|
|
80
|
-
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
81
|
-
* Registers the account in the PXE Service before deploying the contract.
|
|
75
|
+
* Deploys the account contract that backs this account if needed and awaits the tx to be mined.
|
|
76
|
+
* Uses the salt provided in the constructor or a randomly generated one. If no initialization
|
|
77
|
+
* is required it skips the transaction, and only registers the account in the PXE Service.
|
|
82
78
|
* @param opts - Options to wait for the tx to be mined.
|
|
83
79
|
* @returns A Wallet instance.
|
|
84
80
|
*/
|
|
85
|
-
|
|
81
|
+
waitSetup(opts?: WaitOpts): Promise<AccountWalletWithPrivateKey>;
|
|
82
|
+
/**
|
|
83
|
+
* Returns whether this account contract has a constructor and needs deployment.
|
|
84
|
+
*/
|
|
85
|
+
isDeployable(): boolean;
|
|
86
86
|
}
|
|
87
87
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account_manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAmB,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAInE,OAAO,EAAE,2BAA2B,EAAoB,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;GAGG;AACH,qBAAa,cAAc;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account_manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAmB,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAInE,OAAO,EAAE,2BAA2B,EAAoB,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;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,CAAe;gBAG1B,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;IAa7F;;;;;OAKG;IACU,eAAe;IAwB5B;;;;;;OAMG;IACU,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWnD;;;;;;OAMG;IACU,SAAS,CAAC,IAAI,GAAE,QAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAK9F;;OAEG;IACI,YAAY;CAQpB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var _AccountManager_instances, _AccountManager_register;
|
|
2
2
|
import { __classPrivateFieldGet } from "tslib";
|
|
3
3
|
import { CompleteAddress } from '@aztec/circuit-types';
|
|
4
|
-
import {
|
|
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
7
|
import { ContractDeployer } from '../deployment/contract_deployer.js';
|
|
@@ -57,8 +57,11 @@ export class AccountManager {
|
|
|
57
57
|
getInstance() {
|
|
58
58
|
if (!this.instance) {
|
|
59
59
|
const encryptionPublicKey = generatePublicKey(this.encryptionPrivateKey);
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
this.instance = getContractInstanceFromDeployParams(this.accountContract.getContractArtifact(), {
|
|
61
|
+
constructorArgs: this.accountContract.getDeploymentArgs(),
|
|
62
|
+
salt: this.salt,
|
|
63
|
+
publicKey: encryptionPublicKey,
|
|
64
|
+
});
|
|
62
65
|
}
|
|
63
66
|
return this.instance;
|
|
64
67
|
}
|
|
@@ -97,8 +100,8 @@ export class AccountManager {
|
|
|
97
100
|
*/
|
|
98
101
|
async getDeployMethod() {
|
|
99
102
|
if (!this.deployMethod) {
|
|
100
|
-
if (!this.
|
|
101
|
-
throw new Error(`
|
|
103
|
+
if (!this.isDeployable()) {
|
|
104
|
+
throw new Error(`Account contract ${this.accountContract.getContractArtifact().name} does not require deployment.`);
|
|
102
105
|
}
|
|
103
106
|
await __classPrivateFieldGet(this, _AccountManager_instances, "m", _AccountManager_register).call(this);
|
|
104
107
|
const encryptionPublicKey = this.getEncryptionPublicKey();
|
|
@@ -107,17 +110,15 @@ export class AccountManager {
|
|
|
107
110
|
// instead of directly hitting the initializer.
|
|
108
111
|
const deployWallet = new SignerlessWallet(this.pxe);
|
|
109
112
|
const deployer = new ContractDeployer(this.accountContract.getContractArtifact(), deployWallet, encryptionPublicKey);
|
|
110
|
-
const args = this.accountContract.getDeploymentArgs();
|
|
113
|
+
const args = this.accountContract.getDeploymentArgs() ?? [];
|
|
111
114
|
this.deployMethod = deployer.deploy(...args);
|
|
112
115
|
}
|
|
113
116
|
return this.deployMethod;
|
|
114
117
|
}
|
|
115
118
|
/**
|
|
116
119
|
* Deploys the account contract that backs this account.
|
|
117
|
-
* Does not register the associated class nor publicly deploy the instance.
|
|
120
|
+
* Does not register the associated class nor publicly deploy the instance by default.
|
|
118
121
|
* Uses the salt provided in the constructor or a randomly generated one.
|
|
119
|
-
* Note that if the Account is constructed with an explicit complete address
|
|
120
|
-
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
121
122
|
* Registers the account in the PXE Service before deploying the contract.
|
|
122
123
|
* @returns A SentTx object that can be waited to get the associated Wallet.
|
|
123
124
|
*/
|
|
@@ -132,21 +133,25 @@ export class AccountManager {
|
|
|
132
133
|
return new DeployAccountSentTx(wallet, sentTx.getTxHash());
|
|
133
134
|
}
|
|
134
135
|
/**
|
|
135
|
-
* Deploys the account contract that backs this account and awaits the tx to be mined.
|
|
136
|
-
* Uses the salt provided in the constructor or a randomly generated one.
|
|
137
|
-
*
|
|
138
|
-
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
139
|
-
* Registers the account in the PXE Service before deploying the contract.
|
|
136
|
+
* Deploys the account contract that backs this account if needed and awaits the tx to be mined.
|
|
137
|
+
* Uses the salt provided in the constructor or a randomly generated one. If no initialization
|
|
138
|
+
* is required it skips the transaction, and only registers the account in the PXE Service.
|
|
140
139
|
* @param opts - Options to wait for the tx to be mined.
|
|
141
140
|
* @returns A Wallet instance.
|
|
142
141
|
*/
|
|
143
|
-
async
|
|
144
|
-
await this.deploy().then(tx => tx.wait(opts));
|
|
142
|
+
async waitSetup(opts = DefaultWaitOpts) {
|
|
143
|
+
await (this.isDeployable() ? this.deploy().then(tx => tx.wait(opts)) : this.register());
|
|
145
144
|
return this.getWallet();
|
|
146
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Returns whether this account contract has a constructor and needs deployment.
|
|
148
|
+
*/
|
|
149
|
+
isDeployable() {
|
|
150
|
+
return this.accountContract.getDeploymentArgs() !== undefined;
|
|
151
|
+
}
|
|
147
152
|
}
|
|
148
153
|
_AccountManager_instances = new WeakSet(), _AccountManager_register = async function _AccountManager_register() {
|
|
149
154
|
const completeAddress = this.getCompleteAddress();
|
|
150
155
|
await this.pxe.registerAccount(this.encryptionPrivateKey, completeAddress.partialAddress);
|
|
151
156
|
};
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjb3VudF9tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRixPQUFPLEVBQWEsbUNBQW1DLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPOUMsT0FBTyxFQUFFLGVBQWUsRUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBVXpCLFlBQ1UsR0FBUSxFQUNSLG9CQUF3QyxFQUN4QyxlQUFnQyxFQUN4QyxJQUFXOztRQUhILFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDUix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQW9CO1FBQ3hDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUd4QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRVMsc0JBQXNCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsbUJBQW1C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
|
|
@@ -22,8 +22,10 @@ export type DeployOptions = {
|
|
|
22
22
|
universalDeploy?: boolean;
|
|
23
23
|
/** Skip contract class registration. */
|
|
24
24
|
skipClassRegistration?: boolean;
|
|
25
|
-
/** Skip public deployment
|
|
25
|
+
/** Skip public deployment, instead just privately initialize the contract. */
|
|
26
26
|
skipPublicDeployment?: boolean;
|
|
27
|
+
/** Skip contract initialization. */
|
|
28
|
+
skipInitialization?: boolean;
|
|
27
29
|
} & SendMethodOptions;
|
|
28
30
|
/**
|
|
29
31
|
* Contract interaction for deployment. Handles class registration, public instance deployment,
|
|
@@ -39,6 +41,8 @@ export declare class DeployMethod<TContract extends ContractBase = Contract> ext
|
|
|
39
41
|
private instance?;
|
|
40
42
|
/** Constructor function to call. */
|
|
41
43
|
private constructorArtifact;
|
|
44
|
+
/** Cached call to request() */
|
|
45
|
+
private functionCalls;
|
|
42
46
|
private log;
|
|
43
47
|
constructor(publicKey: PublicKey, wallet: Wallet, artifact: ContractArtifact, postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>, args?: any[], constructorName?: string);
|
|
44
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_method.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EACL,YAAY,EAIb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"deploy_method.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EACL,YAAY,EAIb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAA2C,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,mDAAmD;IACnD,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,uFAAuF;IACvF,mBAAmB,CAAC,EAAE,EAAE,CAAC;IACzB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wCAAwC;IACxC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,iBAAiB,CAAC;AAItB;;;GAGG;AACH,qBAAa,YAAY,CAAC,SAAS,SAAS,YAAY,GAAG,QAAQ,CAAE,SAAQ,uBAAuB;IAahG,OAAO,CAAC,SAAS;IACjB,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,IAAI;IAhBd,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,CAA0C;IAE3D,oCAAoC;IACpC,OAAO,CAAC,mBAAmB,CAA+B;IAE1D,+BAA+B;IAC/B,OAAO,CAAC,aAAa,CAA6B;IAElD,OAAO,CAAC,GAAG,CAA+C;gBAGhD,SAAS,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,EAC7E,IAAI,GAAE,GAAG,EAAO,EACxB,eAAe,CAAC,EAAE,MAAM;IAY1B;;;;;;;;OAQG;IACU,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAa7E;;;;;;;OAOG;IACU,OAAO,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkB1E;;;;OAIG;cACa,0BAA0B,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAqChG;;;;;;;OAOG;IACI,IAAI,CAAC,OAAO,GAAE,aAAkB,GAAG,YAAY,CAAC,SAAS,CAAC;IAKjE;;;;;OAKG;IACI,WAAW,CAAC,OAAO,GAAE,aAAkB,GAAG,2BAA2B;IAa5E;;;;OAIG;IACI,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,EAAE,CAAC;IAIpD,sCAAsC;IACtC,IAAW,OAAO,6BAEjB;IAED,uDAAuD;IACvD,IAAW,cAAc,mBAExB;CACF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { computePartialAddress, getContractClassFromArtifact, getContractInstanceFromDeployParams, } from '@aztec/circuits.js';
|
|
2
|
-
import {
|
|
3
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { getDefaultInitializer } from '@aztec/foundation/abi';
|
|
4
3
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
4
|
import { deployInstance } from '../deployment/deploy_instance.js';
|
|
6
5
|
import { registerContractClass } from '../deployment/register_class.js';
|
|
@@ -13,7 +12,7 @@ import { DeploySentTx } from './deploy_sent_tx.js';
|
|
|
13
12
|
* and initialization of the contract. Extends the BaseContractInteraction class.
|
|
14
13
|
*/
|
|
15
14
|
export class DeployMethod extends BaseContractInteraction {
|
|
16
|
-
constructor(publicKey, wallet, artifact, postDeployCtor, args = [], constructorName
|
|
15
|
+
constructor(publicKey, wallet, artifact, postDeployCtor, args = [], constructorName) {
|
|
17
16
|
super(wallet);
|
|
18
17
|
this.publicKey = publicKey;
|
|
19
18
|
this.wallet = wallet;
|
|
@@ -23,11 +22,12 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
23
22
|
/** The contract instance to be deployed. */
|
|
24
23
|
this.instance = undefined;
|
|
25
24
|
this.log = createDebugLogger('aztec:js:deploy_method');
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
this.constructorArtifact = constructorName
|
|
26
|
+
? artifact.functions.find(f => f.name === constructorName)
|
|
27
|
+
: getDefaultInitializer(artifact);
|
|
28
|
+
if (constructorName && !this.constructorArtifact) {
|
|
29
|
+
throw new Error(`Constructor method ${constructorName} not found in contract artifact`);
|
|
29
30
|
}
|
|
30
|
-
this.constructorArtifact = constructorArtifact;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Create a contract deployment transaction, given the deployment options.
|
|
@@ -40,6 +40,10 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
40
40
|
*/
|
|
41
41
|
async create(options = {}) {
|
|
42
42
|
if (!this.txRequest) {
|
|
43
|
+
const calls = await this.request(options);
|
|
44
|
+
if (calls.length === 0) {
|
|
45
|
+
throw new Error(`No function calls needed to deploy contract ${this.artifact.name}`);
|
|
46
|
+
}
|
|
43
47
|
this.txRequest = await this.wallet.createTxExecutionRequest(await this.request(options));
|
|
44
48
|
// TODO: Should we add the contracts to the DB here, or once the tx has been sent or mined?
|
|
45
49
|
await this.pxe.addContracts([{ artifact: this.artifact, instance: this.instance }]);
|
|
@@ -55,9 +59,16 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
55
59
|
* it returns a promise for an array instead of a function call directly.
|
|
56
60
|
*/
|
|
57
61
|
async request(options = {}) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
if (!this.functionCalls) {
|
|
63
|
+
const { address } = this.getInstance(options);
|
|
64
|
+
const calls = await this.getDeploymentFunctionCalls(options);
|
|
65
|
+
if (this.constructorArtifact && !options.skipInitialization) {
|
|
66
|
+
const constructorCall = new ContractFunctionInteraction(this.wallet, address, this.constructorArtifact, this.args);
|
|
67
|
+
calls.push(constructorCall.request());
|
|
68
|
+
}
|
|
69
|
+
this.functionCalls = calls;
|
|
70
|
+
}
|
|
71
|
+
return this.functionCalls;
|
|
61
72
|
}
|
|
62
73
|
/**
|
|
63
74
|
* Returns calls for registration of the class and deployment of the instance, depending on the provided options.
|
|
@@ -110,10 +121,13 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
110
121
|
*/
|
|
111
122
|
getInstance(options = {}) {
|
|
112
123
|
if (!this.instance) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
124
|
+
this.instance = getContractInstanceFromDeployParams(this.artifact, {
|
|
125
|
+
constructorArgs: this.args,
|
|
126
|
+
salt: options.contractAddressSalt,
|
|
127
|
+
portalAddress: options.portalContract,
|
|
128
|
+
publicKey: this.publicKey,
|
|
129
|
+
constructorArtifact: this.constructorArtifact,
|
|
130
|
+
});
|
|
117
131
|
}
|
|
118
132
|
return this.instance;
|
|
119
133
|
}
|
|
@@ -134,4 +148,4 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
134
148
|
return this.instance && computePartialAddress(this.instance);
|
|
135
149
|
}
|
|
136
150
|
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X21ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9kZXBsb3lfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLG1DQUFtQyxHQUNwQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBc0MscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUkxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixNQUFNLGdDQUFnQyxDQUFDO0FBRzVGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQXFCbkQsb0RBQW9EO0FBRXBEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxZQUF3RCxTQUFRLHVCQUF1QjtJQVlsRyxZQUNVLFNBQW9CLEVBQ2xCLE1BQWMsRUFDaEIsUUFBMEIsRUFDMUIsY0FBNkUsRUFDN0UsT0FBYyxFQUFFLEVBQ3hCLGVBQXdCO1FBRXhCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQVBOLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBK0Q7UUFDN0UsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWhCMUIsNENBQTRDO1FBQ3BDLGFBQVEsR0FBaUMsU0FBUyxDQUFDO1FBUW5ELFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFD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
|
|
@@ -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;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;
|
|
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
|
@@ -46,7 +46,7 @@ export class SentTx {
|
|
|
46
46
|
}
|
|
47
47
|
const receipt = await this.waitForReceipt(opts);
|
|
48
48
|
if (receipt.status !== TxStatus.MINED) {
|
|
49
|
-
throw new Error(`Transaction ${await this.getTxHash()} was ${receipt.status}`);
|
|
49
|
+
throw new Error(`Transaction ${await this.getTxHash()} was ${receipt.status}. Reason: ${receipt.error ?? 'unknown'}`);
|
|
50
50
|
}
|
|
51
51
|
if (opts?.debug) {
|
|
52
52
|
const txHash = await this.getTxHash();
|
|
@@ -105,4 +105,4 @@ export class SentTx {
|
|
|
105
105
|
}, 'isMined', opts?.timeout ?? DefaultWaitOpts.timeout, opts?.interval ?? DefaultWaitOpts.interval);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudF90eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9zZW50X3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0UsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBa0JyRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWE7SUFDdkMsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsQ0FBQztJQUNYLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLE1BQU07SUFDakIsWUFBc0IsR0FBUSxFQUFZLGFBQThCO1FBQWxELFFBQUcsR0FBSCxHQUFHLENBQUs7UUFBWSxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7SUFBRyxDQUFDO0lBRTVFOzs7OztPQUtHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEMsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFlO1FBQy9CLElBQUksSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FunctionCall } from '@aztec/circuit-types';
|
|
2
2
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import {
|
|
4
|
+
import { Wallet } from '../account/wallet.js';
|
|
5
5
|
import { FeePaymentMethod } from './fee_payment_method.js';
|
|
6
6
|
/**
|
|
7
7
|
* Holds information about how the fee for a transaction is to be paid.
|
|
@@ -19,6 +19,11 @@ export declare class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
19
19
|
* An auth witness provider to authorize fee payments
|
|
20
20
|
*/
|
|
21
21
|
private wallet;
|
|
22
|
+
/**
|
|
23
|
+
* A secret to shield the rebate amount from the FPC.
|
|
24
|
+
* Use this to claim the shielded amount to private balance
|
|
25
|
+
*/
|
|
26
|
+
private rebateSecret;
|
|
22
27
|
constructor(
|
|
23
28
|
/**
|
|
24
29
|
* The asset used to pay the fee.
|
|
@@ -31,7 +36,12 @@ export declare class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
31
36
|
/**
|
|
32
37
|
* An auth witness provider to authorize fee payments
|
|
33
38
|
*/
|
|
34
|
-
wallet:
|
|
39
|
+
wallet: Wallet,
|
|
40
|
+
/**
|
|
41
|
+
* A secret to shield the rebate amount from the FPC.
|
|
42
|
+
* Use this to claim the shielded amount to private balance
|
|
43
|
+
*/
|
|
44
|
+
rebateSecret?: Fr);
|
|
35
45
|
/**
|
|
36
46
|
* The asset used to pay the fee.
|
|
37
47
|
* @returns The asset used to pay the fee.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_fee_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/private_fee_payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"private_fee_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/private_fee_payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;GAEG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAE5D;;OAEG;IACH,OAAO,CAAC,KAAK;IACb;;OAEG;IACH,OAAO,CAAC,eAAe;IAEvB;;OAEG;IACH,OAAO,CAAC,MAAM;IAEd;;;OAGG;IACH,OAAO,CAAC,YAAY;;IAlBpB;;OAEG;IACK,KAAK,EAAE,YAAY;IAC3B;;OAEG;IACK,eAAe,EAAE,YAAY;IAErC;;OAEG;IACK,MAAM,EAAE,MAAM;IAEtB;;;OAGG;IACK,YAAY,KAAc;IAGpC;;;OAGG;IACH,QAAQ;IAIR;;;OAGG;IACH,kBAAkB;IAIlB;;;;OAIG;IACG,gBAAgB,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CA6B5D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FunctionData } from '@aztec/circuits.js';
|
|
2
|
+
import { computeMessageSecretHash } from '@aztec/circuits.js/hash';
|
|
2
3
|
import { FunctionSelector } from '@aztec/foundation/abi';
|
|
3
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
5
|
import { computeAuthWitMessageHash } from '../utils/authwit.js';
|
|
@@ -18,10 +19,16 @@ export class PrivateFeePaymentMethod {
|
|
|
18
19
|
/**
|
|
19
20
|
* An auth witness provider to authorize fee payments
|
|
20
21
|
*/
|
|
21
|
-
wallet
|
|
22
|
+
wallet,
|
|
23
|
+
/**
|
|
24
|
+
* A secret to shield the rebate amount from the FPC.
|
|
25
|
+
* Use this to claim the shielded amount to private balance
|
|
26
|
+
*/
|
|
27
|
+
rebateSecret = Fr.random()) {
|
|
22
28
|
this.asset = asset;
|
|
23
29
|
this.paymentContract = paymentContract;
|
|
24
30
|
this.wallet = wallet;
|
|
31
|
+
this.rebateSecret = rebateSecret;
|
|
25
32
|
}
|
|
26
33
|
/**
|
|
27
34
|
* The asset used to pay the fee.
|
|
@@ -45,18 +52,19 @@ export class PrivateFeePaymentMethod {
|
|
|
45
52
|
async getFunctionCalls(maxFee) {
|
|
46
53
|
const nonce = Fr.random();
|
|
47
54
|
const messageHash = computeAuthWitMessageHash(this.paymentContract, {
|
|
48
|
-
args: [this.wallet.
|
|
55
|
+
args: [this.wallet.getCompleteAddress().address, this.paymentContract, maxFee, nonce],
|
|
49
56
|
functionData: new FunctionData(FunctionSelector.fromSignature('unshield((Field),(Field),Field,Field)'), false, true, false),
|
|
50
57
|
to: this.asset,
|
|
51
58
|
});
|
|
52
59
|
await this.wallet.createAuthWitness(messageHash);
|
|
60
|
+
const secretHashForRebate = computeMessageSecretHash(this.rebateSecret);
|
|
53
61
|
return [
|
|
54
62
|
{
|
|
55
63
|
to: this.getPaymentContract(),
|
|
56
|
-
functionData: new FunctionData(FunctionSelector.fromSignature('fee_entrypoint_private(Field,(Field),Field)'), false, true, false),
|
|
57
|
-
args: [maxFee, this.asset, nonce],
|
|
64
|
+
functionData: new FunctionData(FunctionSelector.fromSignature('fee_entrypoint_private(Field,(Field),Field,Field)'), false, true, false),
|
|
65
|
+
args: [maxFee, this.asset, secretHashForRebate, nonce],
|
|
58
66
|
},
|
|
59
67
|
];
|
|
60
68
|
}
|
|
61
69
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9mZWVfcGF5bWVudF9tZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmVlL3ByaXZhdGVfZmVlX3BheW1lbnRfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHaEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDO0lBQ0U7O09BRUc7SUFDSyxLQUFtQjtJQUMzQjs7T0FFRztJQUNLLGVBQTZCO0lBRXJDOztPQUVHO0lBQ0ssTUFBYztJQUV0Qjs7O09BR0c7SUFDSyxlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUU7UUFmMUIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUluQixvQkFBZSxHQUFmLGVBQWUsQ0FBYztRQUs3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTWQsaUJBQVksR0FBWixZQUFZLENBQWM7SUFDakMsQ0FBQztJQUVKOzs7T0FHRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBVTtRQUMvQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsTUFBTSxXQUFXLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztZQUNyRixZQUFZLEVBQUUsSUFBSSxZQUFZLENBQzVCLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyx1Q0FBdUMsQ0FBQyxFQUN2RSxLQUFLLEVBQ0wsSUFBSSxFQUNKLEtBQUssQ0FDTjtZQUNELEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSztTQUNmLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqRCxNQUFNLG1CQUFtQixHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV4RSxPQUFPO1lBQ0w7Z0JBQ0UsRUFBRSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDN0IsWUFBWSxFQUFFLElBQUksWUFBWSxDQUM1QixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsbURBQW1ELENBQUMsRUFDbkYsS0FBSyxFQUNMLElBQUksRUFDSixLQUFLLENBQ047Z0JBQ0QsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxDQUFDO2FBQ3ZEO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
|
|
@@ -10,15 +10,15 @@ export declare class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
|
10
10
|
/**
|
|
11
11
|
* The asset used to pay the fee.
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
protected asset: AztecAddress;
|
|
14
14
|
/**
|
|
15
15
|
* Address which will hold the fee payment.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
protected paymentContract: AztecAddress;
|
|
18
18
|
/**
|
|
19
19
|
* An auth witness provider to authorize fee payments
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
protected wallet: AccountWallet;
|
|
22
22
|
constructor(
|
|
23
23
|
/**
|
|
24
24
|
* The asset used to pay the fee.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_fee_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/public_fee_payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;GAEG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAE3D;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"public_fee_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/public_fee_payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;GAEG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAE3D;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,YAAY;IAC7B;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,YAAY;IAEvC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa;;IAZ/B;;OAEG;IACO,KAAK,EAAE,YAAY;IAC7B;;OAEG;IACO,eAAe,EAAE,YAAY;IAEvC;;OAEG;IACO,MAAM,EAAE,aAAa;IAGjC;;;OAGG;IACH,QAAQ;IAIR;;;OAGG;IACH,kBAAkB;IAIlB;;;;OAIG;IACH,gBAAgB,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CA2BtD"}
|
|
@@ -59,4 +59,4 @@ export class PublicFeePaymentMethod {
|
|
|
59
59
|
]);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2ZlZV9wYXltZW50X21ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mZWUvcHVibGljX2ZlZV9wYXltZW50X21ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSWhFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQztJQUNFOztPQUVHO0lBQ08sS0FBbUI7SUFDN0I7O09BRUc7SUFDTyxlQUE2QjtJQUV2Qzs7T0FFRztJQUNPLE1BQXFCO1FBVHJCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFJbkIsb0JBQWUsR0FBZixlQUFlLENBQWM7UUFLN0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUM5QixDQUFDO0lBRUo7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFDLE1BQVU7UUFDekIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLE1BQU0sV0FBVyxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDbEUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDckUsWUFBWSxFQUFFLElBQUksWUFBWSxDQUM1QixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsOENBQThDLENBQUMsRUFDOUUsS0FBSyxFQUNMLEtBQUssRUFDTCxLQUFLLENBQ047WUFDRCxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRTtZQUN0RDtnQkFDRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUM3QixZQUFZLEVBQUUsSUFBSSxZQUFZLENBQzVCLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyw0Q0FBNEMsQ0FBQyxFQUM1RSxLQUFLLEVBQ0wsSUFBSSxFQUNKLEtBQUssQ0FDTjtnQkFDRCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7YUFDbEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/account_wallet.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAGxC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;IACrB,SAAS,CAAC,OAAO,EAAE,gBAAgB;gBAA7C,GAAG,EAAE,GAAG,EAAY,OAAO,EAAE,gBAAgB;IAIzD,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIxF,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOnE;;;;;;OAMG;IACI,aAAa,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,2BAA2B;IAQ5F;;;;OAIG;IACI,aAAa,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,GAAG,2BAA2B;IAKvE,+EAA+E;IACxE,kBAAkB;IAIzB,sEAAsE;IAC/D,UAAU;IAIjB,OAAO,CAAC,0BAA0B;
|
|
1
|
+
{"version":3,"file":"account_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/account_wallet.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAGxC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;IACrB,SAAS,CAAC,OAAO,EAAE,gBAAgB;gBAA7C,GAAG,EAAE,GAAG,EAAY,OAAO,EAAE,gBAAgB;IAIzD,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIxF,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOnE;;;;;;OAMG;IACI,aAAa,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,2BAA2B;IAQ5F;;;;OAIG;IACI,aAAa,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,GAAG,2BAA2B;IAKvE,+EAA+E;IACxE,kBAAkB;IAIzB,sEAAsE;IAC/D,UAAU;IAIjB,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,mBAAmB;CAgB5B"}
|
|
@@ -54,6 +54,7 @@ export class AccountWallet extends BaseWallet {
|
|
|
54
54
|
getApprovePublicAuthwitAbi() {
|
|
55
55
|
return {
|
|
56
56
|
name: 'approve_public_authwit',
|
|
57
|
+
isInitializer: false,
|
|
57
58
|
functionType: FunctionType.OPEN,
|
|
58
59
|
isInternal: true,
|
|
59
60
|
parameters: [
|
|
@@ -69,6 +70,7 @@ export class AccountWallet extends BaseWallet {
|
|
|
69
70
|
getCancelAuthwitAbi() {
|
|
70
71
|
return {
|
|
71
72
|
name: 'cancel_authwit',
|
|
73
|
+
isInitializer: false,
|
|
72
74
|
functionType: FunctionType.SECRET,
|
|
73
75
|
isInternal: true,
|
|
74
76
|
parameters: [
|
|
@@ -82,4 +84,4 @@ export class AccountWallet extends BaseWallet {
|
|
|
82
84
|
};
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF93YWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L2FjY291bnRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4QyxPQUFPLEVBQXVDLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzFGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFjLFNBQVEsVUFBVTtJQUMzQyxZQUFZLEdBQVEsRUFBWSxPQUF5QjtRQUN2RCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7SUFFekQsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQXFCLEVBQUUsR0FBZ0I7UUFDOUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQW9CO1FBQzFDLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlELE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGFBQWEsQ0FBQyxPQUFvQixFQUFFLFVBQW1CO1FBQzVELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixPQUFPLElBQUksMkJBQTJCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEgsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLE9BQW9CO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLDJCQUEyQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVELCtFQUErRTtJQUN4RSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELHNFQUFzRTtJQUMvRCxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxPQUFPLENBQUM7SUFDM0MsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixhQUFhLEVBQUUsS0FBSztZQUNwQixZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDL0IsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFO2dCQUNWO29CQUNFLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO29CQUN2QixVQUFVLEVBQUUsU0FBbUM7aUJBQ2hEO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsRUFBRTtTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixPQUFPO1lBQ0wsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixhQUFhLEVBQUUsS0FBSztZQUNwQixZQUFZLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDakMsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFO2dCQUNWO29CQUNFLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO29CQUN2QixVQUFVLEVBQUUsU0FBbUM7aUJBQ2hEO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsRUFBRTtTQUNoQixDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/aztec.js",
|
|
3
3
|
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/aztec.js",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.28.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./dest/index.js",
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
"rootDir": "./src"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@aztec/circuit-types": "0.
|
|
53
|
-
"@aztec/circuits.js": "0.
|
|
54
|
-
"@aztec/ethereum": "0.
|
|
55
|
-
"@aztec/foundation": "0.
|
|
56
|
-
"@aztec/protocol-contracts": "0.
|
|
57
|
-
"@aztec/types": "0.
|
|
52
|
+
"@aztec/circuit-types": "0.28.0",
|
|
53
|
+
"@aztec/circuits.js": "0.28.0",
|
|
54
|
+
"@aztec/ethereum": "0.28.0",
|
|
55
|
+
"@aztec/foundation": "0.28.0",
|
|
56
|
+
"@aztec/protocol-contracts": "0.28.0",
|
|
57
|
+
"@aztec/types": "0.28.0",
|
|
58
58
|
"tslib": "^2.4.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
package/src/account/contract.ts
CHANGED
|
@@ -16,9 +16,9 @@ export interface AccountContract {
|
|
|
16
16
|
getContractArtifact(): ContractArtifact;
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* Returns the deployment arguments for this instance.
|
|
19
|
+
* Returns the deployment arguments for this instance, or undefined if this contract does not require deployment.
|
|
20
20
|
*/
|
|
21
|
-
getDeploymentArgs(): any[];
|
|
21
|
+
getDeploymentArgs(): any[] | undefined;
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Returns the account interface for this account contract given a deployment at the provided address.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CompleteAddress, GrumpkinPrivateKey, PXE } from '@aztec/circuit-types';
|
|
2
|
-
import {
|
|
2
|
+
import { PublicKey, getContractInstanceFromDeployParams } from '@aztec/circuits.js';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
5
5
|
|
|
@@ -26,7 +26,6 @@ export class AccountManager {
|
|
|
26
26
|
private completeAddress?: CompleteAddress;
|
|
27
27
|
private instance?: ContractInstanceWithAddress;
|
|
28
28
|
private encryptionPublicKey?: PublicKey;
|
|
29
|
-
// TODO(@spalladino): Update to the new deploy method and kill the legacy one.
|
|
30
29
|
private deployMethod?: DeployMethod;
|
|
31
30
|
|
|
32
31
|
constructor(
|
|
@@ -77,14 +76,11 @@ export class AccountManager {
|
|
|
77
76
|
public getInstance(): ContractInstanceWithAddress {
|
|
78
77
|
if (!this.instance) {
|
|
79
78
|
const encryptionPublicKey = generatePublicKey(this.encryptionPrivateKey);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
encryptionPublicKey,
|
|
86
|
-
portalAddress,
|
|
87
|
-
);
|
|
79
|
+
this.instance = getContractInstanceFromDeployParams(this.accountContract.getContractArtifact(), {
|
|
80
|
+
constructorArgs: this.accountContract.getDeploymentArgs(),
|
|
81
|
+
salt: this.salt,
|
|
82
|
+
publicKey: encryptionPublicKey,
|
|
83
|
+
});
|
|
88
84
|
}
|
|
89
85
|
return this.instance;
|
|
90
86
|
}
|
|
@@ -127,8 +123,10 @@ export class AccountManager {
|
|
|
127
123
|
*/
|
|
128
124
|
public async getDeployMethod() {
|
|
129
125
|
if (!this.deployMethod) {
|
|
130
|
-
if (!this.
|
|
131
|
-
throw new Error(
|
|
126
|
+
if (!this.isDeployable()) {
|
|
127
|
+
throw new Error(
|
|
128
|
+
`Account contract ${this.accountContract.getContractArtifact().name} does not require deployment.`,
|
|
129
|
+
);
|
|
132
130
|
}
|
|
133
131
|
await this.#register();
|
|
134
132
|
const encryptionPublicKey = this.getEncryptionPublicKey();
|
|
@@ -141,7 +139,7 @@ export class AccountManager {
|
|
|
141
139
|
deployWallet,
|
|
142
140
|
encryptionPublicKey,
|
|
143
141
|
);
|
|
144
|
-
const args = this.accountContract.getDeploymentArgs();
|
|
142
|
+
const args = this.accountContract.getDeploymentArgs() ?? [];
|
|
145
143
|
this.deployMethod = deployer.deploy(...args);
|
|
146
144
|
}
|
|
147
145
|
return this.deployMethod;
|
|
@@ -149,10 +147,8 @@ export class AccountManager {
|
|
|
149
147
|
|
|
150
148
|
/**
|
|
151
149
|
* Deploys the account contract that backs this account.
|
|
152
|
-
* Does not register the associated class nor publicly deploy the instance.
|
|
150
|
+
* Does not register the associated class nor publicly deploy the instance by default.
|
|
153
151
|
* Uses the salt provided in the constructor or a randomly generated one.
|
|
154
|
-
* Note that if the Account is constructed with an explicit complete address
|
|
155
|
-
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
156
152
|
* Registers the account in the PXE Service before deploying the contract.
|
|
157
153
|
* @returns A SentTx object that can be waited to get the associated Wallet.
|
|
158
154
|
*/
|
|
@@ -168,19 +164,24 @@ export class AccountManager {
|
|
|
168
164
|
}
|
|
169
165
|
|
|
170
166
|
/**
|
|
171
|
-
* Deploys the account contract that backs this account and awaits the tx to be mined.
|
|
172
|
-
* Uses the salt provided in the constructor or a randomly generated one.
|
|
173
|
-
*
|
|
174
|
-
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
175
|
-
* Registers the account in the PXE Service before deploying the contract.
|
|
167
|
+
* Deploys the account contract that backs this account if needed and awaits the tx to be mined.
|
|
168
|
+
* Uses the salt provided in the constructor or a randomly generated one. If no initialization
|
|
169
|
+
* is required it skips the transaction, and only registers the account in the PXE Service.
|
|
176
170
|
* @param opts - Options to wait for the tx to be mined.
|
|
177
171
|
* @returns A Wallet instance.
|
|
178
172
|
*/
|
|
179
|
-
public async
|
|
180
|
-
await this.deploy().then(tx => tx.wait(opts));
|
|
173
|
+
public async waitSetup(opts: WaitOpts = DefaultWaitOpts): Promise<AccountWalletWithPrivateKey> {
|
|
174
|
+
await (this.isDeployable() ? this.deploy().then(tx => tx.wait(opts)) : this.register());
|
|
181
175
|
return this.getWallet();
|
|
182
176
|
}
|
|
183
177
|
|
|
178
|
+
/**
|
|
179
|
+
* Returns whether this account contract has a constructor and needs deployment.
|
|
180
|
+
*/
|
|
181
|
+
public isDeployable() {
|
|
182
|
+
return this.accountContract.getDeploymentArgs() !== undefined;
|
|
183
|
+
}
|
|
184
|
+
|
|
184
185
|
async #register(): Promise<void> {
|
|
185
186
|
const completeAddress = this.getCompleteAddress();
|
|
186
187
|
await this.pxe.registerAccount(this.encryptionPrivateKey, completeAddress.partialAddress);
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getContractClassFromArtifact,
|
|
6
6
|
getContractInstanceFromDeployParams,
|
|
7
7
|
} from '@aztec/circuits.js';
|
|
8
|
-
import { ContractArtifact, FunctionArtifact } from '@aztec/foundation/abi';
|
|
8
|
+
import { ContractArtifact, FunctionArtifact, getDefaultInitializer } from '@aztec/foundation/abi';
|
|
9
9
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
10
10
|
import { Fr } from '@aztec/foundation/fields';
|
|
11
11
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
@@ -33,8 +33,10 @@ export type DeployOptions = {
|
|
|
33
33
|
universalDeploy?: boolean;
|
|
34
34
|
/** Skip contract class registration. */
|
|
35
35
|
skipClassRegistration?: boolean;
|
|
36
|
-
/** Skip public deployment
|
|
36
|
+
/** Skip public deployment, instead just privately initialize the contract. */
|
|
37
37
|
skipPublicDeployment?: boolean;
|
|
38
|
+
/** Skip contract initialization. */
|
|
39
|
+
skipInitialization?: boolean;
|
|
38
40
|
} & SendMethodOptions;
|
|
39
41
|
|
|
40
42
|
// TODO(@spalladino): Add unit tests for this class!
|
|
@@ -48,7 +50,10 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
|
|
|
48
50
|
private instance?: ContractInstanceWithAddress = undefined;
|
|
49
51
|
|
|
50
52
|
/** Constructor function to call. */
|
|
51
|
-
private constructorArtifact: FunctionArtifact;
|
|
53
|
+
private constructorArtifact: FunctionArtifact | undefined;
|
|
54
|
+
|
|
55
|
+
/** Cached call to request() */
|
|
56
|
+
private functionCalls: FunctionCall[] | undefined;
|
|
52
57
|
|
|
53
58
|
private log = createDebugLogger('aztec:js:deploy_method');
|
|
54
59
|
|
|
@@ -58,14 +63,16 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
|
|
|
58
63
|
private artifact: ContractArtifact,
|
|
59
64
|
private postDeployCtor: (address: AztecAddress, wallet: Wallet) => Promise<TContract>,
|
|
60
65
|
private args: any[] = [],
|
|
61
|
-
constructorName
|
|
66
|
+
constructorName?: string,
|
|
62
67
|
) {
|
|
63
68
|
super(wallet);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
69
|
+
this.constructorArtifact = constructorName
|
|
70
|
+
? artifact.functions.find(f => f.name === constructorName)
|
|
71
|
+
: getDefaultInitializer(artifact);
|
|
72
|
+
|
|
73
|
+
if (constructorName && !this.constructorArtifact) {
|
|
74
|
+
throw new Error(`Constructor method ${constructorName} not found in contract artifact`);
|
|
67
75
|
}
|
|
68
|
-
this.constructorArtifact = constructorArtifact;
|
|
69
76
|
}
|
|
70
77
|
|
|
71
78
|
/**
|
|
@@ -79,6 +86,10 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
|
|
|
79
86
|
*/
|
|
80
87
|
public async create(options: DeployOptions = {}): Promise<TxExecutionRequest> {
|
|
81
88
|
if (!this.txRequest) {
|
|
89
|
+
const calls = await this.request(options);
|
|
90
|
+
if (calls.length === 0) {
|
|
91
|
+
throw new Error(`No function calls needed to deploy contract ${this.artifact.name}`);
|
|
92
|
+
}
|
|
82
93
|
this.txRequest = await this.wallet.createTxExecutionRequest(await this.request(options));
|
|
83
94
|
// TODO: Should we add the contracts to the DB here, or once the tx has been sent or mined?
|
|
84
95
|
await this.pxe.addContracts([{ artifact: this.artifact, instance: this.instance! }]);
|
|
@@ -95,9 +106,21 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
|
|
|
95
106
|
* it returns a promise for an array instead of a function call directly.
|
|
96
107
|
*/
|
|
97
108
|
public async request(options: DeployOptions = {}): Promise<FunctionCall[]> {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
109
|
+
if (!this.functionCalls) {
|
|
110
|
+
const { address } = this.getInstance(options);
|
|
111
|
+
const calls = await this.getDeploymentFunctionCalls(options);
|
|
112
|
+
if (this.constructorArtifact && !options.skipInitialization) {
|
|
113
|
+
const constructorCall = new ContractFunctionInteraction(
|
|
114
|
+
this.wallet,
|
|
115
|
+
address,
|
|
116
|
+
this.constructorArtifact,
|
|
117
|
+
this.args,
|
|
118
|
+
);
|
|
119
|
+
calls.push(constructorCall.request());
|
|
120
|
+
}
|
|
121
|
+
this.functionCalls = calls;
|
|
122
|
+
}
|
|
123
|
+
return this.functionCalls;
|
|
101
124
|
}
|
|
102
125
|
|
|
103
126
|
/**
|
|
@@ -163,10 +186,13 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
|
|
|
163
186
|
*/
|
|
164
187
|
public getInstance(options: DeployOptions = {}): ContractInstanceWithAddress {
|
|
165
188
|
if (!this.instance) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
189
|
+
this.instance = getContractInstanceFromDeployParams(this.artifact, {
|
|
190
|
+
constructorArgs: this.args,
|
|
191
|
+
salt: options.contractAddressSalt,
|
|
192
|
+
portalAddress: options.portalContract,
|
|
193
|
+
publicKey: this.publicKey,
|
|
194
|
+
constructorArtifact: this.constructorArtifact,
|
|
195
|
+
});
|
|
170
196
|
}
|
|
171
197
|
return this.instance;
|
|
172
198
|
}
|
package/src/contract/sent_tx.ts
CHANGED
|
@@ -64,7 +64,9 @@ export class SentTx {
|
|
|
64
64
|
}
|
|
65
65
|
const receipt = await this.waitForReceipt(opts);
|
|
66
66
|
if (receipt.status !== TxStatus.MINED) {
|
|
67
|
-
throw new Error(
|
|
67
|
+
throw new Error(
|
|
68
|
+
`Transaction ${await this.getTxHash()} was ${receipt.status}. Reason: ${receipt.error ?? 'unknown'}`,
|
|
69
|
+
);
|
|
68
70
|
}
|
|
69
71
|
if (opts?.debug) {
|
|
70
72
|
const txHash = await this.getTxHash();
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { FunctionCall } from '@aztec/circuit-types';
|
|
2
2
|
import { FunctionData } from '@aztec/circuits.js';
|
|
3
|
+
import { computeMessageSecretHash } from '@aztec/circuits.js/hash';
|
|
3
4
|
import { FunctionSelector } from '@aztec/foundation/abi';
|
|
4
5
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
5
6
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
7
|
|
|
8
|
+
import { Wallet } from '../account/wallet.js';
|
|
7
9
|
import { computeAuthWitMessageHash } from '../utils/authwit.js';
|
|
8
|
-
import { AccountWalletWithPrivateKey } from '../wallet/account_wallet_with_private_key.js';
|
|
9
10
|
import { FeePaymentMethod } from './fee_payment_method.js';
|
|
10
11
|
|
|
11
12
|
/**
|
|
@@ -25,7 +26,13 @@ export class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
25
26
|
/**
|
|
26
27
|
* An auth witness provider to authorize fee payments
|
|
27
28
|
*/
|
|
28
|
-
private wallet:
|
|
29
|
+
private wallet: Wallet,
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* A secret to shield the rebate amount from the FPC.
|
|
33
|
+
* Use this to claim the shielded amount to private balance
|
|
34
|
+
*/
|
|
35
|
+
private rebateSecret = Fr.random(),
|
|
29
36
|
) {}
|
|
30
37
|
|
|
31
38
|
/**
|
|
@@ -52,7 +59,7 @@ export class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
52
59
|
async getFunctionCalls(maxFee: Fr): Promise<FunctionCall[]> {
|
|
53
60
|
const nonce = Fr.random();
|
|
54
61
|
const messageHash = computeAuthWitMessageHash(this.paymentContract, {
|
|
55
|
-
args: [this.wallet.
|
|
62
|
+
args: [this.wallet.getCompleteAddress().address, this.paymentContract, maxFee, nonce],
|
|
56
63
|
functionData: new FunctionData(
|
|
57
64
|
FunctionSelector.fromSignature('unshield((Field),(Field),Field,Field)'),
|
|
58
65
|
false,
|
|
@@ -63,16 +70,18 @@ export class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
63
70
|
});
|
|
64
71
|
await this.wallet.createAuthWitness(messageHash);
|
|
65
72
|
|
|
73
|
+
const secretHashForRebate = computeMessageSecretHash(this.rebateSecret);
|
|
74
|
+
|
|
66
75
|
return [
|
|
67
76
|
{
|
|
68
77
|
to: this.getPaymentContract(),
|
|
69
78
|
functionData: new FunctionData(
|
|
70
|
-
FunctionSelector.fromSignature('fee_entrypoint_private(Field,(Field),Field)'),
|
|
79
|
+
FunctionSelector.fromSignature('fee_entrypoint_private(Field,(Field),Field,Field)'),
|
|
71
80
|
false,
|
|
72
81
|
true,
|
|
73
82
|
false,
|
|
74
83
|
),
|
|
75
|
-
args: [maxFee, this.asset, nonce],
|
|
84
|
+
args: [maxFee, this.asset, secretHashForRebate, nonce],
|
|
76
85
|
},
|
|
77
86
|
];
|
|
78
87
|
}
|
|
@@ -16,16 +16,16 @@ export class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
|
16
16
|
/**
|
|
17
17
|
* The asset used to pay the fee.
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
protected asset: AztecAddress,
|
|
20
20
|
/**
|
|
21
21
|
* Address which will hold the fee payment.
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
protected paymentContract: AztecAddress,
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* An auth witness provider to authorize fee payments
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
protected wallet: AccountWallet,
|
|
29
29
|
) {}
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -63,6 +63,7 @@ export class AccountWallet extends BaseWallet {
|
|
|
63
63
|
private getApprovePublicAuthwitAbi(): FunctionAbi {
|
|
64
64
|
return {
|
|
65
65
|
name: 'approve_public_authwit',
|
|
66
|
+
isInitializer: false,
|
|
66
67
|
functionType: FunctionType.OPEN,
|
|
67
68
|
isInternal: true,
|
|
68
69
|
parameters: [
|
|
@@ -79,6 +80,7 @@ export class AccountWallet extends BaseWallet {
|
|
|
79
80
|
private getCancelAuthwitAbi(): FunctionAbi {
|
|
80
81
|
return {
|
|
81
82
|
name: 'cancel_authwit',
|
|
83
|
+
isInitializer: false,
|
|
82
84
|
functionType: FunctionType.SECRET,
|
|
83
85
|
isInternal: true,
|
|
84
86
|
parameters: [
|