@aztec/aztec.js 0.27.2 → 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 +16 -14
- 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 +23 -10
- 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 +18 -14
- package/src/contract/deploy_method.ts +35 -12
- 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"}
|
|
@@ -100,8 +100,8 @@ export class AccountManager {
|
|
|
100
100
|
*/
|
|
101
101
|
async getDeployMethod() {
|
|
102
102
|
if (!this.deployMethod) {
|
|
103
|
-
if (!this.
|
|
104
|
-
throw new Error(`
|
|
103
|
+
if (!this.isDeployable()) {
|
|
104
|
+
throw new Error(`Account contract ${this.accountContract.getContractArtifact().name} does not require deployment.`);
|
|
105
105
|
}
|
|
106
106
|
await __classPrivateFieldGet(this, _AccountManager_instances, "m", _AccountManager_register).call(this);
|
|
107
107
|
const encryptionPublicKey = this.getEncryptionPublicKey();
|
|
@@ -110,17 +110,15 @@ export class AccountManager {
|
|
|
110
110
|
// instead of directly hitting the initializer.
|
|
111
111
|
const deployWallet = new SignerlessWallet(this.pxe);
|
|
112
112
|
const deployer = new ContractDeployer(this.accountContract.getContractArtifact(), deployWallet, encryptionPublicKey);
|
|
113
|
-
const args = this.accountContract.getDeploymentArgs();
|
|
113
|
+
const args = this.accountContract.getDeploymentArgs() ?? [];
|
|
114
114
|
this.deployMethod = deployer.deploy(...args);
|
|
115
115
|
}
|
|
116
116
|
return this.deployMethod;
|
|
117
117
|
}
|
|
118
118
|
/**
|
|
119
119
|
* Deploys the account contract that backs this account.
|
|
120
|
-
* 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.
|
|
121
121
|
* Uses the salt provided in the constructor or a randomly generated one.
|
|
122
|
-
* Note that if the Account is constructed with an explicit complete address
|
|
123
|
-
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
124
122
|
* Registers the account in the PXE Service before deploying the contract.
|
|
125
123
|
* @returns A SentTx object that can be waited to get the associated Wallet.
|
|
126
124
|
*/
|
|
@@ -135,21 +133,25 @@ export class AccountManager {
|
|
|
135
133
|
return new DeployAccountSentTx(wallet, sentTx.getTxHash());
|
|
136
134
|
}
|
|
137
135
|
/**
|
|
138
|
-
* Deploys the account contract that backs this account and awaits the tx to be mined.
|
|
139
|
-
* Uses the salt provided in the constructor or a randomly generated one.
|
|
140
|
-
*
|
|
141
|
-
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
142
|
-
* 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.
|
|
143
139
|
* @param opts - Options to wait for the tx to be mined.
|
|
144
140
|
* @returns A Wallet instance.
|
|
145
141
|
*/
|
|
146
|
-
async
|
|
147
|
-
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());
|
|
148
144
|
return this.getWallet();
|
|
149
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Returns whether this account contract has a constructor and needs deployment.
|
|
148
|
+
*/
|
|
149
|
+
isDeployable() {
|
|
150
|
+
return this.accountContract.getDeploymentArgs() !== undefined;
|
|
151
|
+
}
|
|
150
152
|
}
|
|
151
153
|
_AccountManager_instances = new WeakSet(), _AccountManager_register = async function _AccountManager_register() {
|
|
152
154
|
const completeAddress = this.getCompleteAddress();
|
|
153
155
|
await this.pxe.registerAccount(this.encryptionPrivateKey, completeAddress.partialAddress);
|
|
154
156
|
};
|
|
155
|
-
//# 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,4 +1,5 @@
|
|
|
1
1
|
import { computePartialAddress, getContractClassFromArtifact, getContractInstanceFromDeployParams, } from '@aztec/circuits.js';
|
|
2
|
+
import { getDefaultInitializer } from '@aztec/foundation/abi';
|
|
2
3
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
4
|
import { deployInstance } from '../deployment/deploy_instance.js';
|
|
4
5
|
import { registerContractClass } from '../deployment/register_class.js';
|
|
@@ -11,7 +12,7 @@ import { DeploySentTx } from './deploy_sent_tx.js';
|
|
|
11
12
|
* and initialization of the contract. Extends the BaseContractInteraction class.
|
|
12
13
|
*/
|
|
13
14
|
export class DeployMethod extends BaseContractInteraction {
|
|
14
|
-
constructor(publicKey, wallet, artifact, postDeployCtor, args = [], constructorName
|
|
15
|
+
constructor(publicKey, wallet, artifact, postDeployCtor, args = [], constructorName) {
|
|
15
16
|
super(wallet);
|
|
16
17
|
this.publicKey = publicKey;
|
|
17
18
|
this.wallet = wallet;
|
|
@@ -21,11 +22,12 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
21
22
|
/** The contract instance to be deployed. */
|
|
22
23
|
this.instance = undefined;
|
|
23
24
|
this.log = createDebugLogger('aztec:js:deploy_method');
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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`);
|
|
27
30
|
}
|
|
28
|
-
this.constructorArtifact = constructorArtifact;
|
|
29
31
|
}
|
|
30
32
|
/**
|
|
31
33
|
* Create a contract deployment transaction, given the deployment options.
|
|
@@ -38,6 +40,10 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
38
40
|
*/
|
|
39
41
|
async create(options = {}) {
|
|
40
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
|
+
}
|
|
41
47
|
this.txRequest = await this.wallet.createTxExecutionRequest(await this.request(options));
|
|
42
48
|
// TODO: Should we add the contracts to the DB here, or once the tx has been sent or mined?
|
|
43
49
|
await this.pxe.addContracts([{ artifact: this.artifact, instance: this.instance }]);
|
|
@@ -53,9 +59,16 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
53
59
|
* it returns a promise for an array instead of a function call directly.
|
|
54
60
|
*/
|
|
55
61
|
async request(options = {}) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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;
|
|
59
72
|
}
|
|
60
73
|
/**
|
|
61
74
|
* Returns calls for registration of the class and deployment of the instance, depending on the provided options.
|
|
@@ -113,7 +126,7 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
113
126
|
salt: options.contractAddressSalt,
|
|
114
127
|
portalAddress: options.portalContract,
|
|
115
128
|
publicKey: this.publicKey,
|
|
116
|
-
|
|
129
|
+
constructorArtifact: this.constructorArtifact,
|
|
117
130
|
});
|
|
118
131
|
}
|
|
119
132
|
return this.instance;
|
|
@@ -135,4 +148,4 @@ export class DeployMethod extends BaseContractInteraction {
|
|
|
135
148
|
return this.instance && computePartialAddress(this.instance);
|
|
136
149
|
}
|
|
137
150
|
}
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X21ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9kZXBsb3lfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLG1DQUFtQyxHQUNwQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBc0MscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUkxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixNQUFNLGdDQUFnQyxDQUFDO0FBRzVGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQXFCbkQsb0RBQW9EO0FBRXBEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxZQUF3RCxTQUFRLHVCQUF1QjtJQVlsRyxZQUNVLFNBQW9CLEVBQ2xCLE1BQWMsRUFDaEIsUUFBMEIsRUFDMUIsY0FBNkUsRUFDN0UsT0FBYyxFQUFFLEVBQ3hCLGVBQXdCO1FBRXhCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQVBOLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBK0Q7UUFDN0UsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWhCMUIsNENBQTRDO1FBQ3BDLGFBQVEsR0FBaUMsU0FBUyxDQUFDO1FBUW5ELFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBV3hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxlQUFlO1lBQ3hDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDO1lBQzFELENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQyxJQUFJLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLGVBQWUsaUNBQWlDLENBQUMsQ0FBQztRQUMxRixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUF5QixFQUFFO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZGLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN6RiwyRkFBMkY7WUFDM0YsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBeUIsRUFBRTtRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdELElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzVELE1BQU0sZUFBZSxHQUFHLElBQUksMkJBQTJCLENBQ3JELElBQUksQ0FBQyxNQUFNLEVBQ1gsT0FBTyxFQUNQLElBQUksQ0FBQyxtQkFBbUIsRUFDeEIsSUFBSSxDQUFDLElBQUksQ0FDVixDQUFDO2dCQUNGLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzdCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxLQUFLLENBQUMsMEJBQTBCLENBQUMsVUFBeUIsRUFBRTtRQUNwRSxNQUFNLEtBQUssR0FBbUIsRUFBRSxDQUFDO1FBRWpDLHdGQUF3RjtRQUN4RixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTNDLDZGQUE2RjtRQUM3Riw2RkFBNkY7UUFDN0YsTUFBTSxhQUFhLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxNQUFNLElBQUksS0FBSyxDQUNiLHdEQUF3RCxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsYUFBYSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQzdKLENBQUM7UUFDSixDQUFDO1FBRUQsbUVBQW1FO1FBQ25FLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDdkUsSUFBSSxDQUFDLEdBQUcsQ0FDTiw4REFBOEQsYUFBYSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQy9ILENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLEdBQUcsQ0FDTixtREFBbUQsYUFBYSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsOEJBQThCLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDMUksQ0FBQztnQkFDRixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbEYsQ0FBQztRQUNILENBQUM7UUFFRCxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDNUcsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxJQUFJLENBQUMsVUFBeUIsRUFBRTtRQUNyQyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksV0FBVyxDQUFDLFVBQXlCLEVBQUU7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pFLGVBQWUsRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDMUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxtQkFBbUI7Z0JBQ2pDLGFBQWEsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDckMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO2FBQzlDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsT0FBc0I7UUFDcEMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVELHVEQUF1RDtJQUN2RCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YifQ==
|
|
@@ -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.
|
|
@@ -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(
|
|
@@ -124,8 +123,10 @@ export class AccountManager {
|
|
|
124
123
|
*/
|
|
125
124
|
public async getDeployMethod() {
|
|
126
125
|
if (!this.deployMethod) {
|
|
127
|
-
if (!this.
|
|
128
|
-
throw new Error(
|
|
126
|
+
if (!this.isDeployable()) {
|
|
127
|
+
throw new Error(
|
|
128
|
+
`Account contract ${this.accountContract.getContractArtifact().name} does not require deployment.`,
|
|
129
|
+
);
|
|
129
130
|
}
|
|
130
131
|
await this.#register();
|
|
131
132
|
const encryptionPublicKey = this.getEncryptionPublicKey();
|
|
@@ -138,7 +139,7 @@ export class AccountManager {
|
|
|
138
139
|
deployWallet,
|
|
139
140
|
encryptionPublicKey,
|
|
140
141
|
);
|
|
141
|
-
const args = this.accountContract.getDeploymentArgs();
|
|
142
|
+
const args = this.accountContract.getDeploymentArgs() ?? [];
|
|
142
143
|
this.deployMethod = deployer.deploy(...args);
|
|
143
144
|
}
|
|
144
145
|
return this.deployMethod;
|
|
@@ -146,10 +147,8 @@ export class AccountManager {
|
|
|
146
147
|
|
|
147
148
|
/**
|
|
148
149
|
* Deploys the account contract that backs this account.
|
|
149
|
-
* 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.
|
|
150
151
|
* Uses the salt provided in the constructor or a randomly generated one.
|
|
151
|
-
* Note that if the Account is constructed with an explicit complete address
|
|
152
|
-
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
153
152
|
* Registers the account in the PXE Service before deploying the contract.
|
|
154
153
|
* @returns A SentTx object that can be waited to get the associated Wallet.
|
|
155
154
|
*/
|
|
@@ -165,19 +164,24 @@ export class AccountManager {
|
|
|
165
164
|
}
|
|
166
165
|
|
|
167
166
|
/**
|
|
168
|
-
* Deploys the account contract that backs this account and awaits the tx to be mined.
|
|
169
|
-
* Uses the salt provided in the constructor or a randomly generated one.
|
|
170
|
-
*
|
|
171
|
-
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
172
|
-
* 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.
|
|
173
170
|
* @param opts - Options to wait for the tx to be mined.
|
|
174
171
|
* @returns A Wallet instance.
|
|
175
172
|
*/
|
|
176
|
-
public async
|
|
177
|
-
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());
|
|
178
175
|
return this.getWallet();
|
|
179
176
|
}
|
|
180
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
|
+
|
|
181
185
|
async #register(): Promise<void> {
|
|
182
186
|
const completeAddress = this.getCompleteAddress();
|
|
183
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
|
/**
|
|
@@ -168,7 +191,7 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
|
|
|
168
191
|
salt: options.contractAddressSalt,
|
|
169
192
|
portalAddress: options.portalContract,
|
|
170
193
|
publicKey: this.publicKey,
|
|
171
|
-
|
|
194
|
+
constructorArtifact: this.constructorArtifact,
|
|
172
195
|
});
|
|
173
196
|
}
|
|
174
197
|
return this.instance;
|
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: [
|