@aztec/aztec.js 0.67.1-devnet → 0.68.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/contract/base_contract_interaction.d.ts.map +1 -1
- package/dest/contract/base_contract_interaction.js +3 -3
- package/dest/contract/contract_function_interaction.d.ts.map +1 -1
- package/dest/contract/contract_function_interaction.js +18 -8
- package/dest/contract/get_gas_limits.d.ts +12 -2
- package/dest/contract/get_gas_limits.d.ts.map +1 -1
- package/dest/contract/get_gas_limits.js +1 -1
- package/dest/fee/fee_juice_payment_method.d.ts +1 -1
- package/dest/fee/fee_juice_payment_method.js +2 -2
- package/dest/fee/fee_payment_method.d.ts +1 -1
- package/dest/fee/fee_payment_method.d.ts.map +1 -1
- package/dest/fee/no_fee_payment_method.d.ts +1 -1
- package/dest/fee/no_fee_payment_method.js +2 -2
- package/dest/fee/private_fee_payment_method.d.ts +2 -17
- package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.js +38 -17
- package/dest/fee/public_fee_payment_method.d.ts +2 -9
- package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/public_fee_payment_method.js +37 -11
- package/dest/wallet/base_wallet.d.ts +4 -4
- package/dest/wallet/base_wallet.d.ts.map +1 -1
- package/dest/wallet/base_wallet.js +9 -9
- package/package.json +11 -11
- package/src/contract/base_contract_interaction.ts +14 -2
- package/src/contract/contract_function_interaction.ts +22 -8
- package/src/contract/get_gas_limits.ts +15 -2
- package/src/fee/fee_juice_payment_method.ts +1 -1
- package/src/fee/fee_payment_method.ts +1 -1
- package/src/fee/no_fee_payment_method.ts +1 -1
- package/src/fee/private_fee_payment_method.ts +46 -16
- package/src/fee/public_fee_payment_method.ts +45 -10
- package/src/wallet/base_wallet.ts +16 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_contract_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/base_contract_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGhF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2CAA2C;IAC3C,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,kKAAkK;IAClK,KAAK,CAAC,EAAE,EAAE,CAAC;IACX,qIAAqI;IACrI,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,8BAAsB,uBAAuB;IAG/B,SAAS,CAAC,MAAM,EAAE,MAAM;IAFpC,SAAS,CAAC,GAAG,yCAAgD;gBAEvC,MAAM,EAAE,MAAM;IAEpC;;;;OAIG;aACa,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAEhF;;;;;;OAMG;cACa,aAAa,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;IAMxF;;;;OAIG;IACU,KAAK,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKtE;;;;;;;;OAQG;IACI,IAAI,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM;IAQpD;;;;;OAKG;IACU,WAAW,CACtB,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,sBAAsB,CAAC,GACrE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"base_contract_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/base_contract_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGhF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2CAA2C;IAC3C,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,kKAAkK;IAClK,KAAK,CAAC,EAAE,EAAE,CAAC;IACX,qIAAqI;IACrI,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,8BAAsB,uBAAuB;IAG/B,SAAS,CAAC,MAAM,EAAE,MAAM;IAFpC,SAAS,CAAC,GAAG,yCAAgD;gBAEvC,MAAM,EAAE,MAAM;IAEpC;;;;OAIG;aACa,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAEhF;;;;;;OAMG;cACa,aAAa,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;IAMxF;;;;OAIG;IACU,KAAK,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKtE;;;;;;;;OAQG;IACI,IAAI,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM;IAQpD;;;;;OAKG;IACU,WAAW,CACtB,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,sBAAsB,CAAC,GACrE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB,CAAC,CAAC;IAgBhE;;;OAGG;cACa,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAO1F;;;;;OAKG;cACa,aAAa,CAC3B,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAG;QAAmC,GAAG,CAAC,EAAE,cAAc,CAAA;KAAE,GACrG,OAAO,CAAC,UAAU,CAAC;CA6BvB"}
|
|
@@ -58,7 +58,7 @@ export class BaseContractInteraction {
|
|
|
58
58
|
*/
|
|
59
59
|
async estimateGas(opts) {
|
|
60
60
|
const txRequest = await this.create({ ...opts, fee: { ...opts?.fee, estimateGas: false } });
|
|
61
|
-
const simulationResult = await this.wallet.simulateTx(txRequest, true);
|
|
61
|
+
const simulationResult = await this.wallet.simulateTx(txRequest, true /*simulatePublic*/, undefined /* msgSender */, undefined /* skipTxValidation */, false /* enforceFeePayment */);
|
|
62
62
|
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(simulationResult, opts?.fee?.estimatedGasPadding);
|
|
63
63
|
return { gasLimits, teardownGasLimits };
|
|
64
64
|
}
|
|
@@ -87,7 +87,7 @@ export class BaseContractInteraction {
|
|
|
87
87
|
if (request.fee?.estimateGas) {
|
|
88
88
|
const feeForEstimation = { paymentMethod, gasSettings };
|
|
89
89
|
const txRequest = await this.wallet.createTxExecutionRequest({ ...request, fee: feeForEstimation });
|
|
90
|
-
const simulationResult = await this.wallet.simulateTx(txRequest, true);
|
|
90
|
+
const simulationResult = await this.wallet.simulateTx(txRequest, true /*simulatePublic*/, undefined /* msgSender */, undefined /* skipTxValidation */, false /* enforceFeePayment */);
|
|
91
91
|
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(simulationResult, request.fee?.estimatedGasPadding);
|
|
92
92
|
gasSettings = GasSettings.from({ maxFeesPerGas, maxPriorityFeesPerGas, gasLimits, teardownGasLimits });
|
|
93
93
|
this.log.verbose(`Estimated gas limits for tx: DA=${gasLimits.daGas} L2=${gasLimits.l2Gas} teardownDA=${teardownGasLimits.daGas} teardownL2=${teardownGasLimits.l2Gas}`);
|
|
@@ -95,4 +95,4 @@ export class BaseContractInteraction {
|
|
|
95
95
|
return { gasSettings, paymentMethod };
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9jb250cmFjdF9pbnRlcmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXNlX2NvbnRyYWN0X2ludGVyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBaUJ0Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHVCQUF1QjtJQUczQyxZQUFzQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUYxQixRQUFHLEdBQUcsWUFBWSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFFdEIsQ0FBQztJQVN4Qzs7Ozs7O09BTUc7SUFDTyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQTZCLEVBQUU7UUFDM0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25ILE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxL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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract_function_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/contract_function_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,kCAAkC;IAClC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,uCAAuC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8HAA8H;IAC9H,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,gCAAgC,GAAG;IAC7D,0EAA0E;IAC1E,YAAY,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,uBAAuB;IAGpE,SAAS,CAAC,eAAe,EAAE,YAAY;IACvC,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE;gBAHrB,MAAM,EAAE,MAAM,EACJ,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,GAAG,EAAE;IAQvB;;;;;OAKG;IACU,MAAM,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAU9E;;;;OAIG;IACI,OAAO,IAAI,YAAY;IAa9B;;;;;;;;OAQG;IACU,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"contract_function_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/contract_function_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,kCAAkC;IAClC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,uCAAuC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8HAA8H;IAC9H,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,gCAAgC,GAAG;IAC7D,0EAA0E;IAC1E,YAAY,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,uBAAuB;IAGpE,SAAS,CAAC,eAAe,EAAE,YAAY;IACvC,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE;gBAHrB,MAAM,EAAE,MAAM,EACJ,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,GAAG,EAAE;IAQvB;;;;;OAKG;IACU,MAAM,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAU9E;;;;OAIG;IACI,OAAO,IAAI,YAAY;IAa9B;;;;;;;;OAQG;IACU,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;IA0BxE;;;;;OAKG;IACU,mBAAmB,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;CA0B9F"}
|
|
@@ -61,12 +61,22 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
61
61
|
}
|
|
62
62
|
const txRequest = await this.create();
|
|
63
63
|
const simulatedTx = await this.wallet.simulateTx(txRequest, true, options?.from, options?.skipTxValidation);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
let rawReturnValues;
|
|
65
|
+
if (this.functionDao.functionType == FunctionType.PRIVATE) {
|
|
66
|
+
if (simulatedTx.getPrivateReturnValues().nested.length > 0) {
|
|
67
|
+
// The function invoked is private and it was called via an account contract
|
|
68
|
+
// TODO(#10631): There is a bug here: this branch might be triggered when there is no-account contract as well
|
|
69
|
+
rawReturnValues = simulatedTx.getPrivateReturnValues().nested[0].values;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// The function invoked is private and it was called directly (without account contract)
|
|
73
|
+
rawReturnValues = simulatedTx.getPrivateReturnValues().values;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// For public functions we retrieve the first values directly from the public output.
|
|
78
|
+
rawReturnValues = simulatedTx.getPublicReturnValues()?.[0].values;
|
|
79
|
+
}
|
|
70
80
|
return rawReturnValues ? decodeFromAbi(this.functionDao.returnTypes, rawReturnValues) : [];
|
|
71
81
|
}
|
|
72
82
|
/**
|
|
@@ -80,7 +90,7 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
80
90
|
throw new Error("Can't profile an unconstrained function.");
|
|
81
91
|
}
|
|
82
92
|
const txRequest = await this.create();
|
|
83
|
-
const simulatedTx = await this.wallet.simulateTx(txRequest, true, options?.from, options?.skipTxValidation, true);
|
|
93
|
+
const simulatedTx = await this.wallet.simulateTx(txRequest, true, options?.from, options?.skipTxValidation, undefined, true);
|
|
84
94
|
const rawReturnValues = this.functionDao.functionType == FunctionType.PRIVATE
|
|
85
95
|
? simulatedTx.getPrivateReturnValues().nested?.[0].values
|
|
86
96
|
: simulatedTx.getPublicReturnValues()?.[0].values;
|
|
@@ -91,4 +101,4 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
91
101
|
};
|
|
92
102
|
}
|
|
93
103
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osYUFBYSxFQUNiLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLEVBQUUsdUJBQXVCLEVBQTBCLE1BQU0sZ0NBQWdDLENBQUM7QUEwQmpHOzs7R0FHRztBQUNILE1BQU0sT0FBTywyQkFBNEIsU0FBUSx1QkFBdUI7SUFDdEUsWUFDRSxNQUFjLEVBQ0osZUFBNkIsRUFDN0IsV0FBd0IsRUFDeEIsSUFBVztRQUVyQixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFKSixvQkFBZSxHQUFmLGVBQWUsQ0FBYztRQUM3QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFPO1FBR3JCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2RUFBNkUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4RyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUEwQixFQUFFO1FBQzlDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvQixNQUFN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
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type TxSimulationResult } from '@aztec/circuit-types';
|
|
2
|
+
import { type Gas } from '@aztec/circuits.js';
|
|
2
3
|
/**
|
|
3
4
|
* Returns suggested total and teardown gas limits for a simulated tx.
|
|
4
5
|
* Note that public gas usage is only accounted for if the publicOutput is present.
|
|
5
6
|
* @param pad - Percentage to pad the suggested gas limits by, (as decimal, e.g., 0.10 for 10%).
|
|
6
7
|
*/
|
|
7
|
-
export declare function getGasLimits(simulationResult: TxSimulationResult, pad?: number):
|
|
8
|
+
export declare function getGasLimits(simulationResult: TxSimulationResult, pad?: number): {
|
|
9
|
+
/**
|
|
10
|
+
* Total gas used across private and public
|
|
11
|
+
*/
|
|
12
|
+
totalGas: Gas;
|
|
13
|
+
/**
|
|
14
|
+
* Teardown gas used
|
|
15
|
+
*/
|
|
16
|
+
teardownGas: Gas;
|
|
17
|
+
};
|
|
8
18
|
//# sourceMappingURL=get_gas_limits.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_gas_limits.d.ts","sourceRoot":"","sources":["../../src/contract/get_gas_limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"get_gas_limits.d.ts","sourceRoot":"","sources":["../../src/contract/get_gas_limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,gBAAgB,EAAE,kBAAkB,EACpC,GAAG,SAAM,GACR;IACD;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC;IACd;;OAEG;IACH,WAAW,EAAE,GAAG,CAAC;CAClB,CAKA"}
|
|
@@ -9,4 +9,4 @@ export function getGasLimits(simulationResult, pad = 0.1) {
|
|
|
9
9
|
teardownGas: simulationResult.gasUsed.teardownGas.mul(1 + pad),
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2dhc19saW1pdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvZ2V0X2dhc19saW1pdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQzFCLGdCQUFvQyxFQUNwQyxHQUFHLEdBQUcsR0FBRztJQVdULE9BQU87UUFDTCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN4RCxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUMvRCxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -7,7 +7,7 @@ import { type FeePaymentMethod } from './fee_payment_method.js';
|
|
|
7
7
|
export declare class FeeJuicePaymentMethod implements FeePaymentMethod {
|
|
8
8
|
protected sender: AztecAddress;
|
|
9
9
|
constructor(sender: AztecAddress);
|
|
10
|
-
getAsset(): AztecAddress
|
|
10
|
+
getAsset(): Promise<AztecAddress>;
|
|
11
11
|
getFunctionCalls(): Promise<FunctionCall[]>;
|
|
12
12
|
getFeePayer(): Promise<AztecAddress>;
|
|
13
13
|
}
|
|
@@ -7,7 +7,7 @@ export class FeeJuicePaymentMethod {
|
|
|
7
7
|
this.sender = sender;
|
|
8
8
|
}
|
|
9
9
|
getAsset() {
|
|
10
|
-
return ProtocolContractAddress.FeeJuice;
|
|
10
|
+
return Promise.resolve(ProtocolContractAddress.FeeJuice);
|
|
11
11
|
}
|
|
12
12
|
getFunctionCalls() {
|
|
13
13
|
return Promise.resolve([]);
|
|
@@ -16,4 +16,4 @@ export class FeeJuicePaymentMethod {
|
|
|
16
16
|
return Promise.resolve(this.sender);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX2p1aWNlX3BheW1lbnRfbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZlZS9mZWVfanVpY2VfcGF5bWVudF9tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQXNCLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7SUFBRyxDQUFDO0lBRTlDLFFBQVE7UUFDTixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGIn0=
|
|
@@ -6,7 +6,7 @@ import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
|
6
6
|
*/
|
|
7
7
|
export interface FeePaymentMethod {
|
|
8
8
|
/** The asset used to pay the fee. */
|
|
9
|
-
getAsset(): AztecAddress
|
|
9
|
+
getAsset(): Promise<AztecAddress>;
|
|
10
10
|
/**
|
|
11
11
|
* Creates a function call to pay the fee in the given asset.
|
|
12
12
|
* @param gasSettings - The gas limits and max fees.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/fee_payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,QAAQ,IAAI,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"fee_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/fee_payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC;;;;OAIG;IACH,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACpE;;;OAGG;IACH,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC9D"}
|
|
@@ -6,7 +6,7 @@ import { type FeePaymentMethod } from './fee_payment_method.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class NoFeePaymentMethod implements FeePaymentMethod {
|
|
8
8
|
constructor();
|
|
9
|
-
getAsset(): AztecAddress
|
|
9
|
+
getAsset(): Promise<AztecAddress>;
|
|
10
10
|
getFunctionCalls(): Promise<FunctionCall[]>;
|
|
11
11
|
getFeePayer(): Promise<AztecAddress>;
|
|
12
12
|
}
|
|
@@ -5,7 +5,7 @@ import { AztecAddress } from '@aztec/circuits.js';
|
|
|
5
5
|
export class NoFeePaymentMethod {
|
|
6
6
|
constructor() { }
|
|
7
7
|
getAsset() {
|
|
8
|
-
return AztecAddress.ZERO;
|
|
8
|
+
return Promise.resolve(AztecAddress.ZERO);
|
|
9
9
|
}
|
|
10
10
|
getFunctionCalls() {
|
|
11
11
|
return Promise.resolve([]);
|
|
@@ -14,4 +14,4 @@ export class NoFeePaymentMethod {
|
|
|
14
14
|
return Promise.resolve(AztecAddress.ZERO);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9fZmVlX3BheW1lbnRfbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZlZS9ub19mZWVfcGF5bWVudF9tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixnQkFBZSxDQUFDO0lBRWhCLFFBQVE7UUFDTixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRiJ9
|
|
@@ -7,10 +7,6 @@ import { type FeePaymentMethod } from './fee_payment_method.js';
|
|
|
7
7
|
* Holds information about how the fee for a transaction is to be paid.
|
|
8
8
|
*/
|
|
9
9
|
export declare class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
10
|
-
/**
|
|
11
|
-
* The asset used to pay the fee.
|
|
12
|
-
*/
|
|
13
|
-
private asset;
|
|
14
10
|
/**
|
|
15
11
|
* Address which will hold the fee payment.
|
|
16
12
|
*/
|
|
@@ -19,20 +15,13 @@ export declare class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
19
15
|
* An auth witness provider to authorize fee payments
|
|
20
16
|
*/
|
|
21
17
|
private wallet;
|
|
22
|
-
/**
|
|
23
|
-
* Address that the FPC sends notes it receives to.
|
|
24
|
-
*/
|
|
25
|
-
private feeRecipient;
|
|
26
18
|
/**
|
|
27
19
|
* If true, the max fee will be set to 1.
|
|
28
20
|
* TODO(#7694): Remove this param once the lacking feature in TXE is implemented.
|
|
29
21
|
*/
|
|
30
22
|
private setMaxFeeToOne;
|
|
23
|
+
private assetPromise;
|
|
31
24
|
constructor(
|
|
32
|
-
/**
|
|
33
|
-
* The asset used to pay the fee.
|
|
34
|
-
*/
|
|
35
|
-
asset: AztecAddress,
|
|
36
25
|
/**
|
|
37
26
|
* Address which will hold the fee payment.
|
|
38
27
|
*/
|
|
@@ -41,10 +30,6 @@ export declare class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
41
30
|
* An auth witness provider to authorize fee payments
|
|
42
31
|
*/
|
|
43
32
|
wallet: Wallet,
|
|
44
|
-
/**
|
|
45
|
-
* Address that the FPC sends notes it receives to.
|
|
46
|
-
*/
|
|
47
|
-
feeRecipient: AztecAddress,
|
|
48
33
|
/**
|
|
49
34
|
* If true, the max fee will be set to 1.
|
|
50
35
|
* TODO(#7694): Remove this param once the lacking feature in TXE is implemented.
|
|
@@ -54,7 +39,7 @@ export declare class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
54
39
|
* The asset used to pay the fee.
|
|
55
40
|
* @returns The asset used to pay the fee.
|
|
56
41
|
*/
|
|
57
|
-
getAsset(): AztecAddress
|
|
42
|
+
getAsset(): Promise<AztecAddress>;
|
|
58
43
|
getFeePayer(): Promise<AztecAddress>;
|
|
59
44
|
/**
|
|
60
45
|
* Creates a function call to pay the fee in the given asset.
|
|
@@ -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,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,KAAK,MAAM,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,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;GAEG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAI5D;;OAEG;IACH,OAAO,CAAC,eAAe;IAEvB;;OAEG;IACH,OAAO,CAAC,MAAM;IAEd;;;OAGG;IACH,OAAO,CAAC,cAAc;IAjBxB,OAAO,CAAC,YAAY,CAAsC;;IAGxD;;OAEG;IACK,eAAe,EAAE,YAAY;IAErC;;OAEG;IACK,MAAM,EAAE,MAAM;IAEtB;;;OAGG;IACK,cAAc,UAAQ;IAGhC;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAuCjC,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAIpC;;;;OAIG;IACG,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CA+B1E"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { FunctionSelector, FunctionType } from '@aztec/foundation/abi';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
4
|
+
import { SignerlessWallet } from '../wallet/signerless_wallet.js';
|
|
3
5
|
/**
|
|
4
6
|
* Holds information about how the fee for a transaction is to be paid.
|
|
5
7
|
*/
|
|
6
8
|
export class PrivateFeePaymentMethod {
|
|
7
9
|
constructor(
|
|
8
|
-
/**
|
|
9
|
-
* The asset used to pay the fee.
|
|
10
|
-
*/
|
|
11
|
-
asset,
|
|
12
10
|
/**
|
|
13
11
|
* Address which will hold the fee payment.
|
|
14
12
|
*/
|
|
@@ -17,27 +15,50 @@ export class PrivateFeePaymentMethod {
|
|
|
17
15
|
* An auth witness provider to authorize fee payments
|
|
18
16
|
*/
|
|
19
17
|
wallet,
|
|
20
|
-
/**
|
|
21
|
-
* Address that the FPC sends notes it receives to.
|
|
22
|
-
*/
|
|
23
|
-
feeRecipient,
|
|
24
18
|
/**
|
|
25
19
|
* If true, the max fee will be set to 1.
|
|
26
20
|
* TODO(#7694): Remove this param once the lacking feature in TXE is implemented.
|
|
27
21
|
*/
|
|
28
22
|
setMaxFeeToOne = false) {
|
|
29
|
-
this.asset = asset;
|
|
30
23
|
this.paymentContract = paymentContract;
|
|
31
24
|
this.wallet = wallet;
|
|
32
|
-
this.feeRecipient = feeRecipient;
|
|
33
25
|
this.setMaxFeeToOne = setMaxFeeToOne;
|
|
26
|
+
this.assetPromise = null;
|
|
34
27
|
}
|
|
35
28
|
/**
|
|
36
29
|
* The asset used to pay the fee.
|
|
37
30
|
* @returns The asset used to pay the fee.
|
|
38
31
|
*/
|
|
39
32
|
getAsset() {
|
|
40
|
-
|
|
33
|
+
if (!this.assetPromise) {
|
|
34
|
+
// We use signer-less wallet because this function could be triggered before the associated account is deployed.
|
|
35
|
+
const signerlessWallet = new SignerlessWallet(this.wallet);
|
|
36
|
+
const interaction = new ContractFunctionInteraction(signerlessWallet, this.paymentContract, {
|
|
37
|
+
name: 'get_accepted_asset',
|
|
38
|
+
functionType: FunctionType.PRIVATE,
|
|
39
|
+
isInternal: false,
|
|
40
|
+
isStatic: false,
|
|
41
|
+
parameters: [],
|
|
42
|
+
returnTypes: [
|
|
43
|
+
{
|
|
44
|
+
kind: 'struct',
|
|
45
|
+
path: 'authwit::aztec::protocol_types::address::aztec_address::AztecAddress',
|
|
46
|
+
fields: [
|
|
47
|
+
{
|
|
48
|
+
name: 'inner',
|
|
49
|
+
type: {
|
|
50
|
+
kind: 'field',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
errorTypes: {},
|
|
57
|
+
isInitializer: false,
|
|
58
|
+
}, []);
|
|
59
|
+
this.assetPromise = interaction.simulate();
|
|
60
|
+
}
|
|
61
|
+
return this.assetPromise;
|
|
41
62
|
}
|
|
42
63
|
getFeePayer() {
|
|
43
64
|
return Promise.resolve(this.paymentContract);
|
|
@@ -56,11 +77,11 @@ export class PrivateFeePaymentMethod {
|
|
|
56
77
|
caller: this.paymentContract,
|
|
57
78
|
action: {
|
|
58
79
|
name: 'setup_refund',
|
|
59
|
-
args: [this.
|
|
60
|
-
selector: FunctionSelector.fromSignature('setup_refund((Field),
|
|
80
|
+
args: [this.wallet.getAddress().toField(), maxFee, nonce],
|
|
81
|
+
selector: FunctionSelector.fromSignature('setup_refund((Field),Field,Field)'),
|
|
61
82
|
type: FunctionType.PRIVATE,
|
|
62
83
|
isStatic: false,
|
|
63
|
-
to: this.
|
|
84
|
+
to: await this.getAsset(),
|
|
64
85
|
returnTypes: [],
|
|
65
86
|
},
|
|
66
87
|
});
|
|
@@ -68,13 +89,13 @@ export class PrivateFeePaymentMethod {
|
|
|
68
89
|
{
|
|
69
90
|
name: 'fee_entrypoint_private',
|
|
70
91
|
to: this.paymentContract,
|
|
71
|
-
selector: FunctionSelector.fromSignature('fee_entrypoint_private(Field,
|
|
92
|
+
selector: FunctionSelector.fromSignature('fee_entrypoint_private(Field,Field)'),
|
|
72
93
|
type: FunctionType.PRIVATE,
|
|
73
94
|
isStatic: false,
|
|
74
|
-
args: [maxFee,
|
|
95
|
+
args: [maxFee, nonce],
|
|
75
96
|
returnTypes: [],
|
|
76
97
|
},
|
|
77
98
|
];
|
|
78
99
|
}
|
|
79
100
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9mZWVfcGF5bWVudF9tZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmVlL3ByaXZhdGVfZmVlX3BheW1lbnRfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHbEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBR2xDO0lBQ0U7O09BRUc7SUFDSyxlQUE2QjtJQUVyQzs7T0FFRztJQUNLLE1BQWM7SUFFdEI7OztPQUdHO0lBQ0ssaUJBQWlCLEtBQUs7UUFYdEIsb0JBQWUsR0FBZixlQUFlLENBQWM7UUFLN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU1kLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBakJ4QixpQkFBWSxHQUFpQyxJQUFJLENBQUM7SUFrQnZELENBQUM7SUFFSjs7O09BR0c7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixnSEFBZ0g7WUFDaEgsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUzRCxNQUFNLFdBQVcsR0FBRyxJQUFJLDJCQUEyQixDQUNqRCxnQkFBZ0IsRUFDaEIsSUFBSSxDQUFDLGVBQWUsRUFDcEI7Z0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsWUFBWSxFQUFFLFlBQVksQ0FBQyxPQUFPO2dCQUNsQyxVQUFVLEVBQUUsS0FBSztnQkFDakIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFO29CQUNYO3dCQUNFLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxzRUFBc0U7d0JBQzVFLE1BQU0sRUFBRTs0QkFDTjtnQ0FDRSxJQUFJLEVBQUUsT0FBTztnQ0FDYixJQUFJLEVBQUU7b0NBQ0osSUFBSSxFQUFFLE9BQU87aUNBQ2Q7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsYUFBYSxFQUFFLEtBQUs7YUFDckIsRUFDRCxFQUFFLENBQ0gsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFdBQXdCO1FBQzdDLDZHQUE2RztRQUM3Ryx3Q0FBd0M7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hFLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUUxQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQzlCLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZTtZQUM1QixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztnQkFDekQsUUFBUSxFQUFFLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxtQ0FBbUMsQ0FBQztnQkFDN0UsSUFBSSxFQUFFLFlBQVksQ0FBQyxPQUFPO2dCQUMxQixRQUFRLEVBQUUsS0FBSztnQkFDZixFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsRUFBRTthQUNoQjtTQUNGLENBQUMsQ0FBQztRQUVILE9BQU87WUFDTDtnQkFDRSxJQUFJLEVBQUUsd0JBQXdCO2dCQUM5QixFQUFFLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ3hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMscUNBQXFDLENBQUM7Z0JBQy9FLElBQUksRUFBRSxZQUFZLENBQUMsT0FBTztnQkFDMUIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztnQkFDckIsV0FBVyxFQUFFLEVBQUU7YUFDaEI7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
|
|
@@ -7,10 +7,6 @@ import { type FeePaymentMethod } from './fee_payment_method.js';
|
|
|
7
7
|
* Holds information about how the fee for a transaction is to be paid.
|
|
8
8
|
*/
|
|
9
9
|
export declare class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
10
|
-
/**
|
|
11
|
-
* The asset used to pay the fee.
|
|
12
|
-
*/
|
|
13
|
-
protected asset: AztecAddress;
|
|
14
10
|
/**
|
|
15
11
|
* Address which will hold the fee payment.
|
|
16
12
|
*/
|
|
@@ -19,11 +15,8 @@ export declare class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
|
19
15
|
* An auth witness provider to authorize fee payments
|
|
20
16
|
*/
|
|
21
17
|
protected wallet: AccountWallet;
|
|
18
|
+
private assetPromise;
|
|
22
19
|
constructor(
|
|
23
|
-
/**
|
|
24
|
-
* The asset used to pay the fee.
|
|
25
|
-
*/
|
|
26
|
-
asset: AztecAddress,
|
|
27
20
|
/**
|
|
28
21
|
* Address which will hold the fee payment.
|
|
29
22
|
*/
|
|
@@ -36,7 +29,7 @@ export declare class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
|
36
29
|
* The asset used to pay the fee.
|
|
37
30
|
* @returns The asset used to pay the fee.
|
|
38
31
|
*/
|
|
39
|
-
getAsset(): AztecAddress
|
|
32
|
+
getAsset(): Promise<AztecAddress>;
|
|
40
33
|
getFeePayer(): Promise<AztecAddress>;
|
|
41
34
|
/**
|
|
42
35
|
* Creates a function call to pay the fee in the given asset.
|
|
@@ -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,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"public_fee_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/public_fee_payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAIpE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;GAEG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAI3D;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,YAAY;IACvC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa;IAVjC,OAAO,CAAC,YAAY,CAAsC;;IAGxD;;OAEG;IACO,eAAe,EAAE,YAAY;IACvC;;OAEG;IACO,MAAM,EAAE,aAAa;IAGjC;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAuCjC,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAIpC;;;;OAIG;IACG,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAiC1E"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { FunctionSelector, FunctionType } from '@aztec/foundation/abi';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
4
|
+
import { SignerlessWallet } from '../wallet/signerless_wallet.js';
|
|
3
5
|
/**
|
|
4
6
|
* Holds information about how the fee for a transaction is to be paid.
|
|
5
7
|
*/
|
|
6
8
|
export class PublicFeePaymentMethod {
|
|
7
9
|
constructor(
|
|
8
|
-
/**
|
|
9
|
-
* The asset used to pay the fee.
|
|
10
|
-
*/
|
|
11
|
-
asset,
|
|
12
10
|
/**
|
|
13
11
|
* Address which will hold the fee payment.
|
|
14
12
|
*/
|
|
@@ -17,16 +15,44 @@ export class PublicFeePaymentMethod {
|
|
|
17
15
|
* An auth witness provider to authorize fee payments
|
|
18
16
|
*/
|
|
19
17
|
wallet) {
|
|
20
|
-
this.asset = asset;
|
|
21
18
|
this.paymentContract = paymentContract;
|
|
22
19
|
this.wallet = wallet;
|
|
20
|
+
this.assetPromise = null;
|
|
23
21
|
}
|
|
24
22
|
/**
|
|
25
23
|
* The asset used to pay the fee.
|
|
26
24
|
* @returns The asset used to pay the fee.
|
|
27
25
|
*/
|
|
28
26
|
getAsset() {
|
|
29
|
-
|
|
27
|
+
if (!this.assetPromise) {
|
|
28
|
+
// We use signer-less wallet because this function could be triggered before the associated account is deployed.
|
|
29
|
+
const signerlessWallet = new SignerlessWallet(this.wallet);
|
|
30
|
+
const interaction = new ContractFunctionInteraction(signerlessWallet, this.paymentContract, {
|
|
31
|
+
name: 'get_accepted_asset',
|
|
32
|
+
functionType: FunctionType.PRIVATE,
|
|
33
|
+
isInternal: false,
|
|
34
|
+
isStatic: false,
|
|
35
|
+
parameters: [],
|
|
36
|
+
returnTypes: [
|
|
37
|
+
{
|
|
38
|
+
kind: 'struct',
|
|
39
|
+
path: 'authwit::aztec::protocol_types::address::aztec_address::AztecAddress',
|
|
40
|
+
fields: [
|
|
41
|
+
{
|
|
42
|
+
name: 'inner',
|
|
43
|
+
type: {
|
|
44
|
+
kind: 'field',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
errorTypes: {},
|
|
51
|
+
isInitializer: false,
|
|
52
|
+
}, []);
|
|
53
|
+
this.assetPromise = interaction.simulate();
|
|
54
|
+
}
|
|
55
|
+
return this.assetPromise;
|
|
30
56
|
}
|
|
31
57
|
getFeePayer() {
|
|
32
58
|
return Promise.resolve(this.paymentContract);
|
|
@@ -36,7 +62,7 @@ export class PublicFeePaymentMethod {
|
|
|
36
62
|
* @param gasSettings - The gas settings.
|
|
37
63
|
* @returns The function call to pay the fee.
|
|
38
64
|
*/
|
|
39
|
-
getFunctionCalls(gasSettings) {
|
|
65
|
+
async getFunctionCalls(gasSettings) {
|
|
40
66
|
const nonce = Fr.random();
|
|
41
67
|
const maxFee = gasSettings.getFeeLimit();
|
|
42
68
|
return Promise.resolve([
|
|
@@ -49,7 +75,7 @@ export class PublicFeePaymentMethod {
|
|
|
49
75
|
selector: FunctionSelector.fromSignature('transfer_in_public((Field),(Field),Field,Field)'),
|
|
50
76
|
type: FunctionType.PUBLIC,
|
|
51
77
|
isStatic: false,
|
|
52
|
-
to: this.
|
|
78
|
+
to: await this.getAsset(),
|
|
53
79
|
returnTypes: [],
|
|
54
80
|
},
|
|
55
81
|
}, true)
|
|
@@ -57,13 +83,13 @@ export class PublicFeePaymentMethod {
|
|
|
57
83
|
{
|
|
58
84
|
name: 'fee_entrypoint_public',
|
|
59
85
|
to: this.paymentContract,
|
|
60
|
-
selector: FunctionSelector.fromSignature('fee_entrypoint_public(Field,
|
|
86
|
+
selector: FunctionSelector.fromSignature('fee_entrypoint_public(Field,Field)'),
|
|
61
87
|
type: FunctionType.PRIVATE,
|
|
62
88
|
isStatic: false,
|
|
63
|
-
args: [maxFee,
|
|
89
|
+
args: [maxFee, nonce],
|
|
64
90
|
returnTypes: [],
|
|
65
91
|
},
|
|
66
92
|
]);
|
|
67
93
|
}
|
|
68
94
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2ZlZV9wYXltZW50X21ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mZWUvcHVibGljX2ZlZV9wYXltZW50X21ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRTNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2xFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQztJQUNFOztPQUVHO0lBQ08sZUFBNkI7SUFDdkM7O09BRUc7SUFDTyxNQUFxQjtRQUpyQixvQkFBZSxHQUFmLGVBQWUsQ0FBYztRQUk3QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBVnpCLGlCQUFZLEdBQWlDLElBQUksQ0FBQztJQVd2RCxDQUFDO0lBRUo7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsZ0hBQWdIO1lBQ2hILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFM0QsTUFBTSxXQUFXLEdBQUcsSUFBSSwyQkFBMkIsQ0FDakQsZ0JBQWdCLEVBQ2hCLElBQUksQ0FBQyxlQUFlLEVBQ3BCO2dCQUNFLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLFlBQVksRUFBRSxZQUFZLENBQUMsT0FBTztnQkFDbEMsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFVBQVUsRUFBRSxFQUFFO2dCQUNkLFdBQVcsRUFBRTtvQkFDWDt3QkFDRSxJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsc0VBQXNFO3dCQUM1RSxNQUFNLEVBQUU7NEJBQ047Z0NBQ0UsSUFBSSxFQUFFLE9BQU87Z0NBQ2IsSUFBSSxFQUFFO29DQUNKLElBQUksRUFBRSxPQUFPO2lDQUNkOzZCQUNGO3lCQUNGO3FCQUNGO2lCQUNGO2dCQUNELFVBQVUsRUFBRSxFQUFFO2dCQUNkLGFBQWEsRUFBRSxLQUFLO2FBQ3JCLEVBQ0QsRUFBRSxDQUNILENBQUM7WUFFRixJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxXQUF3QjtRQUM3QyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXpDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTTtpQkFDUixnQkFBZ0IsQ0FDZjtnQkFDRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQzVCLE1BQU0sRUFBRTtvQkFDTixJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztvQkFDekYsUUFBUSxFQUFFLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxpREFBaUQsQ0FBQztvQkFDM0YsSUFBSSxFQUFFLFlBQVksQ0FBQyxNQUFNO29CQUN6QixRQUFRLEVBQUUsS0FBSztvQkFDZixFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUN6QixXQUFXLEVBQUUsRUFBRTtpQkFDaEI7YUFDRixFQUNELElBQUksQ0FDTDtpQkFDQSxPQUFPLEVBQUU7WUFDWjtnQkFDRSxJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixFQUFFLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ3hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsb0NBQW9DLENBQUM7Z0JBQzlFLElBQUksRUFBRSxZQUFZLENBQUMsT0FBTztnQkFDMUIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztnQkFDckIsV0FBVyxFQUFFLEVBQUU7YUFDaEI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
|
|
@@ -29,9 +29,9 @@ export declare abstract class BaseWallet implements Wallet {
|
|
|
29
29
|
registerAccount(secretKey: Fr, partialAddress: PartialAddress): Promise<CompleteAddress>;
|
|
30
30
|
getRegisteredAccounts(): Promise<CompleteAddress[]>;
|
|
31
31
|
getRegisteredAccount(address: AztecAddress): Promise<CompleteAddress | undefined>;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
registerSender(address: AztecAddress): Promise<AztecAddress>;
|
|
33
|
+
getSenders(): Promise<AztecAddress[]>;
|
|
34
|
+
removeSender(address: AztecAddress): Promise<void>;
|
|
35
35
|
registerContract(contract: {
|
|
36
36
|
/** Instance */ instance: ContractInstanceWithAddress;
|
|
37
37
|
/** Associated artifact */ artifact?: ContractArtifact;
|
|
@@ -39,7 +39,7 @@ export declare abstract class BaseWallet implements Wallet {
|
|
|
39
39
|
registerContractClass(artifact: ContractArtifact): Promise<void>;
|
|
40
40
|
getContracts(): Promise<AztecAddress[]>;
|
|
41
41
|
proveTx(txRequest: TxExecutionRequest, privateExecutionResult: PrivateExecutionResult): Promise<TxProvingResult>;
|
|
42
|
-
simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean, msgSender?: AztecAddress, skipTxValidation?: boolean, profile?: boolean): Promise<TxSimulationResult>;
|
|
42
|
+
simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean, msgSender?: AztecAddress, skipTxValidation?: boolean, enforceFeePayment?: boolean, profile?: boolean): Promise<TxSimulationResult>;
|
|
43
43
|
sendTx(tx: Tx): Promise<TxHash>;
|
|
44
44
|
getTxEffect(txHash: TxHash): Promise<import("@aztec/circuit-types").InBlock<import("@aztec/circuit-types").TxEffect> | undefined>;
|
|
45
45
|
getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/base_wallet.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,EAAE,EACP,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,EAAE,EACP,KAAK,OAAO,EACZ,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,KAAK,EACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE9E;;GAEG;AACH,8BAAsB,UAAW,YAAW,MAAM;IACpC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG;IAAE,OAAO,CAAC,MAAM,CAAC;gBAAzB,GAAG,EAAE,GAAG,EAAU,MAAM,CAAC,4BAAgB;IAExE,QAAQ,CAAC,qBAAqB,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAEnE,QAAQ,CAAC,kBAAkB,IAAI,eAAe;IAE9C,QAAQ,CAAC,UAAU,IAAI,EAAE;IAEzB,QAAQ,CAAC,UAAU,IAAI,EAAE;IAEzB,QAAQ,CAAC,wBAAwB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAE1F,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,GAAG,eAAe,GAAG,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAElG,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE;IAIhC,SAAS;IAIT,UAAU;IAGV,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAG5F,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAGlE,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAGlE,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAGxC,eAAe,CAAC,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAGxF,qBAAqB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAGnD,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAGjF,
|
|
1
|
+
{"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/base_wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,14 +36,14 @@ export class BaseWallet {
|
|
|
36
36
|
getRegisteredAccount(address) {
|
|
37
37
|
return this.pxe.getRegisteredAccount(address);
|
|
38
38
|
}
|
|
39
|
-
|
|
40
|
-
return this.pxe.
|
|
39
|
+
registerSender(address) {
|
|
40
|
+
return this.pxe.registerSender(address);
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
return this.pxe.
|
|
42
|
+
getSenders() {
|
|
43
|
+
return this.pxe.getSenders();
|
|
44
44
|
}
|
|
45
|
-
async
|
|
46
|
-
await this.pxe.
|
|
45
|
+
async removeSender(address) {
|
|
46
|
+
await this.pxe.removeSender(address);
|
|
47
47
|
}
|
|
48
48
|
registerContract(contract) {
|
|
49
49
|
return this.pxe.registerContract(contract);
|
|
@@ -57,8 +57,8 @@ export class BaseWallet {
|
|
|
57
57
|
proveTx(txRequest, privateExecutionResult) {
|
|
58
58
|
return this.pxe.proveTx(txRequest, privateExecutionResult);
|
|
59
59
|
}
|
|
60
|
-
simulateTx(txRequest, simulatePublic, msgSender, skipTxValidation, profile) {
|
|
61
|
-
return this.pxe.simulateTx(txRequest, simulatePublic, msgSender, skipTxValidation, profile, this.scopes);
|
|
60
|
+
simulateTx(txRequest, simulatePublic, msgSender, skipTxValidation, enforceFeePayment, profile) {
|
|
61
|
+
return this.pxe.simulateTx(txRequest, simulatePublic, msgSender, skipTxValidation, enforceFeePayment, profile, this.scopes);
|
|
62
62
|
}
|
|
63
63
|
sendTx(tx) {
|
|
64
64
|
return this.pxe.sendTx(tx);
|
|
@@ -133,4 +133,4 @@ export class BaseWallet {
|
|
|
133
133
|
return this.pxe.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L2Jhc2Vfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNDQTs7R0FFRztBQUNILE1BQU0sT0FBZ0IsVUFBVTtJQUM5QixZQUErQixHQUFRLEVBQVUsTUFBdUI7UUFBekMsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUFVLFdBQU0sR0FBTixNQUFNLENBQWlCO0lBQUcsQ0FBQztJQWM1RSxTQUFTLENBQUMsTUFBc0I7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE9BQU8sQ0FBQztJQUMzQyxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsT0FBcUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFNO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsRUFBTTtRQUN4QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUFhLEVBQUUsY0FBOEI7UUFDM0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDN0QsQ0FB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
|
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.68.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./dest/index.js",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"clean": "rm -rf ./dest .tsbuildinfo ./src/account_contract/artifacts",
|
|
39
39
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
40
40
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
41
|
-
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests"
|
|
41
|
+
"test": "HARDWARE_CONCURRENCY=16 RAYON_NUM_THREADS=4 NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=8"
|
|
42
42
|
},
|
|
43
43
|
"inherits": [
|
|
44
44
|
"../package.common.json",
|
|
@@ -71,9 +71,9 @@
|
|
|
71
71
|
],
|
|
72
72
|
"reporters": [
|
|
73
73
|
[
|
|
74
|
-
"
|
|
74
|
+
"jest-silent-reporter",
|
|
75
75
|
{
|
|
76
|
-
"
|
|
76
|
+
"useDots": true
|
|
77
77
|
}
|
|
78
78
|
]
|
|
79
79
|
],
|
|
@@ -83,13 +83,13 @@
|
|
|
83
83
|
]
|
|
84
84
|
},
|
|
85
85
|
"dependencies": {
|
|
86
|
-
"@aztec/circuit-types": "0.
|
|
87
|
-
"@aztec/circuits.js": "0.
|
|
88
|
-
"@aztec/ethereum": "0.
|
|
89
|
-
"@aztec/foundation": "0.
|
|
90
|
-
"@aztec/l1-artifacts": "0.
|
|
91
|
-
"@aztec/protocol-contracts": "0.
|
|
92
|
-
"@aztec/types": "0.
|
|
86
|
+
"@aztec/circuit-types": "0.68.0",
|
|
87
|
+
"@aztec/circuits.js": "0.68.0",
|
|
88
|
+
"@aztec/ethereum": "0.68.0",
|
|
89
|
+
"@aztec/foundation": "0.68.0",
|
|
90
|
+
"@aztec/l1-artifacts": "0.68.0",
|
|
91
|
+
"@aztec/protocol-contracts": "0.68.0",
|
|
92
|
+
"@aztec/types": "0.68.0",
|
|
93
93
|
"axios": "^1.7.2",
|
|
94
94
|
"tslib": "^2.4.0",
|
|
95
95
|
"viem": "^2.7.15"
|
|
@@ -91,7 +91,13 @@ export abstract class BaseContractInteraction {
|
|
|
91
91
|
opts?: Omit<SendMethodOptions, 'estimateGas' | 'skipPublicSimulation'>,
|
|
92
92
|
): Promise<Pick<GasSettings, 'gasLimits' | 'teardownGasLimits'>> {
|
|
93
93
|
const txRequest = await this.create({ ...opts, fee: { ...opts?.fee, estimateGas: false } });
|
|
94
|
-
const simulationResult = await this.wallet.simulateTx(
|
|
94
|
+
const simulationResult = await this.wallet.simulateTx(
|
|
95
|
+
txRequest,
|
|
96
|
+
true /*simulatePublic*/,
|
|
97
|
+
undefined /* msgSender */,
|
|
98
|
+
undefined /* skipTxValidation */,
|
|
99
|
+
false /* enforceFeePayment */,
|
|
100
|
+
);
|
|
95
101
|
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(
|
|
96
102
|
simulationResult,
|
|
97
103
|
opts?.fee?.estimatedGasPadding,
|
|
@@ -128,7 +134,13 @@ export abstract class BaseContractInteraction {
|
|
|
128
134
|
if (request.fee?.estimateGas) {
|
|
129
135
|
const feeForEstimation: FeeOptions = { paymentMethod, gasSettings };
|
|
130
136
|
const txRequest = await this.wallet.createTxExecutionRequest({ ...request, fee: feeForEstimation });
|
|
131
|
-
const simulationResult = await this.wallet.simulateTx(
|
|
137
|
+
const simulationResult = await this.wallet.simulateTx(
|
|
138
|
+
txRequest,
|
|
139
|
+
true /*simulatePublic*/,
|
|
140
|
+
undefined /* msgSender */,
|
|
141
|
+
undefined /* skipTxValidation */,
|
|
142
|
+
false /* enforceFeePayment */,
|
|
143
|
+
);
|
|
132
144
|
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(
|
|
133
145
|
simulationResult,
|
|
134
146
|
request.fee?.estimatedGasPadding,
|
|
@@ -103,13 +103,20 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
103
103
|
const txRequest = await this.create();
|
|
104
104
|
const simulatedTx = await this.wallet.simulateTx(txRequest, true, options?.from, options?.skipTxValidation);
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
106
|
+
let rawReturnValues;
|
|
107
|
+
if (this.functionDao.functionType == FunctionType.PRIVATE) {
|
|
108
|
+
if (simulatedTx.getPrivateReturnValues().nested.length > 0) {
|
|
109
|
+
// The function invoked is private and it was called via an account contract
|
|
110
|
+
// TODO(#10631): There is a bug here: this branch might be triggered when there is no-account contract as well
|
|
111
|
+
rawReturnValues = simulatedTx.getPrivateReturnValues().nested[0].values;
|
|
112
|
+
} else {
|
|
113
|
+
// The function invoked is private and it was called directly (without account contract)
|
|
114
|
+
rawReturnValues = simulatedTx.getPrivateReturnValues().values;
|
|
115
|
+
}
|
|
116
|
+
} else {
|
|
117
|
+
// For public functions we retrieve the first values directly from the public output.
|
|
118
|
+
rawReturnValues = simulatedTx.getPublicReturnValues()?.[0].values;
|
|
119
|
+
}
|
|
113
120
|
|
|
114
121
|
return rawReturnValues ? decodeFromAbi(this.functionDao.returnTypes, rawReturnValues) : [];
|
|
115
122
|
}
|
|
@@ -126,7 +133,14 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
126
133
|
}
|
|
127
134
|
|
|
128
135
|
const txRequest = await this.create();
|
|
129
|
-
const simulatedTx = await this.wallet.simulateTx(
|
|
136
|
+
const simulatedTx = await this.wallet.simulateTx(
|
|
137
|
+
txRequest,
|
|
138
|
+
true,
|
|
139
|
+
options?.from,
|
|
140
|
+
options?.skipTxValidation,
|
|
141
|
+
undefined,
|
|
142
|
+
true,
|
|
143
|
+
);
|
|
130
144
|
|
|
131
145
|
const rawReturnValues =
|
|
132
146
|
this.functionDao.functionType == FunctionType.PRIVATE
|
|
@@ -1,11 +1,24 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type TxSimulationResult } from '@aztec/circuit-types';
|
|
2
|
+
import { type Gas } from '@aztec/circuits.js';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Returns suggested total and teardown gas limits for a simulated tx.
|
|
5
6
|
* Note that public gas usage is only accounted for if the publicOutput is present.
|
|
6
7
|
* @param pad - Percentage to pad the suggested gas limits by, (as decimal, e.g., 0.10 for 10%).
|
|
7
8
|
*/
|
|
8
|
-
export function getGasLimits(
|
|
9
|
+
export function getGasLimits(
|
|
10
|
+
simulationResult: TxSimulationResult,
|
|
11
|
+
pad = 0.1,
|
|
12
|
+
): {
|
|
13
|
+
/**
|
|
14
|
+
* Total gas used across private and public
|
|
15
|
+
*/
|
|
16
|
+
totalGas: Gas;
|
|
17
|
+
/**
|
|
18
|
+
* Teardown gas used
|
|
19
|
+
*/
|
|
20
|
+
teardownGas: Gas;
|
|
21
|
+
} {
|
|
9
22
|
return {
|
|
10
23
|
totalGas: simulationResult.gasUsed.totalGas.mul(1 + pad),
|
|
11
24
|
teardownGas: simulationResult.gasUsed.teardownGas.mul(1 + pad),
|
|
@@ -11,7 +11,7 @@ export class FeeJuicePaymentMethod implements FeePaymentMethod {
|
|
|
11
11
|
constructor(protected sender: AztecAddress) {}
|
|
12
12
|
|
|
13
13
|
getAsset() {
|
|
14
|
-
return ProtocolContractAddress.FeeJuice;
|
|
14
|
+
return Promise.resolve(ProtocolContractAddress.FeeJuice);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
getFunctionCalls(): Promise<FunctionCall[]> {
|
|
@@ -7,7 +7,7 @@ import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
|
7
7
|
*/
|
|
8
8
|
export interface FeePaymentMethod {
|
|
9
9
|
/** The asset used to pay the fee. */
|
|
10
|
-
getAsset(): AztecAddress
|
|
10
|
+
getAsset(): Promise<AztecAddress>;
|
|
11
11
|
/**
|
|
12
12
|
* Creates a function call to pay the fee in the given asset.
|
|
13
13
|
* @param gasSettings - The gas limits and max fees.
|
|
@@ -5,17 +5,17 @@ import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
|
|
7
7
|
import { type Wallet } from '../account/wallet.js';
|
|
8
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
9
|
+
import { SignerlessWallet } from '../wallet/signerless_wallet.js';
|
|
8
10
|
import { type FeePaymentMethod } from './fee_payment_method.js';
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* Holds information about how the fee for a transaction is to be paid.
|
|
12
14
|
*/
|
|
13
15
|
export class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
16
|
+
private assetPromise: Promise<AztecAddress> | null = null;
|
|
17
|
+
|
|
14
18
|
constructor(
|
|
15
|
-
/**
|
|
16
|
-
* The asset used to pay the fee.
|
|
17
|
-
*/
|
|
18
|
-
private asset: AztecAddress,
|
|
19
19
|
/**
|
|
20
20
|
* Address which will hold the fee payment.
|
|
21
21
|
*/
|
|
@@ -26,11 +26,6 @@ export class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
26
26
|
*/
|
|
27
27
|
private wallet: Wallet,
|
|
28
28
|
|
|
29
|
-
/**
|
|
30
|
-
* Address that the FPC sends notes it receives to.
|
|
31
|
-
*/
|
|
32
|
-
private feeRecipient: AztecAddress,
|
|
33
|
-
|
|
34
29
|
/**
|
|
35
30
|
* If true, the max fee will be set to 1.
|
|
36
31
|
* TODO(#7694): Remove this param once the lacking feature in TXE is implemented.
|
|
@@ -42,8 +37,43 @@ export class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
42
37
|
* The asset used to pay the fee.
|
|
43
38
|
* @returns The asset used to pay the fee.
|
|
44
39
|
*/
|
|
45
|
-
getAsset() {
|
|
46
|
-
|
|
40
|
+
getAsset(): Promise<AztecAddress> {
|
|
41
|
+
if (!this.assetPromise) {
|
|
42
|
+
// We use signer-less wallet because this function could be triggered before the associated account is deployed.
|
|
43
|
+
const signerlessWallet = new SignerlessWallet(this.wallet);
|
|
44
|
+
|
|
45
|
+
const interaction = new ContractFunctionInteraction(
|
|
46
|
+
signerlessWallet,
|
|
47
|
+
this.paymentContract,
|
|
48
|
+
{
|
|
49
|
+
name: 'get_accepted_asset',
|
|
50
|
+
functionType: FunctionType.PRIVATE,
|
|
51
|
+
isInternal: false,
|
|
52
|
+
isStatic: false,
|
|
53
|
+
parameters: [],
|
|
54
|
+
returnTypes: [
|
|
55
|
+
{
|
|
56
|
+
kind: 'struct',
|
|
57
|
+
path: 'authwit::aztec::protocol_types::address::aztec_address::AztecAddress',
|
|
58
|
+
fields: [
|
|
59
|
+
{
|
|
60
|
+
name: 'inner',
|
|
61
|
+
type: {
|
|
62
|
+
kind: 'field',
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
errorTypes: {},
|
|
69
|
+
isInitializer: false,
|
|
70
|
+
},
|
|
71
|
+
[],
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
this.assetPromise = interaction.simulate();
|
|
75
|
+
}
|
|
76
|
+
return this.assetPromise!;
|
|
47
77
|
}
|
|
48
78
|
|
|
49
79
|
getFeePayer(): Promise<AztecAddress> {
|
|
@@ -65,11 +95,11 @@ export class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
65
95
|
caller: this.paymentContract,
|
|
66
96
|
action: {
|
|
67
97
|
name: 'setup_refund',
|
|
68
|
-
args: [this.
|
|
69
|
-
selector: FunctionSelector.fromSignature('setup_refund((Field),
|
|
98
|
+
args: [this.wallet.getAddress().toField(), maxFee, nonce],
|
|
99
|
+
selector: FunctionSelector.fromSignature('setup_refund((Field),Field,Field)'),
|
|
70
100
|
type: FunctionType.PRIVATE,
|
|
71
101
|
isStatic: false,
|
|
72
|
-
to: this.
|
|
102
|
+
to: await this.getAsset(),
|
|
73
103
|
returnTypes: [],
|
|
74
104
|
},
|
|
75
105
|
});
|
|
@@ -78,10 +108,10 @@ export class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
78
108
|
{
|
|
79
109
|
name: 'fee_entrypoint_private',
|
|
80
110
|
to: this.paymentContract,
|
|
81
|
-
selector: FunctionSelector.fromSignature('fee_entrypoint_private(Field,
|
|
111
|
+
selector: FunctionSelector.fromSignature('fee_entrypoint_private(Field,Field)'),
|
|
82
112
|
type: FunctionType.PRIVATE,
|
|
83
113
|
isStatic: false,
|
|
84
|
-
args: [maxFee,
|
|
114
|
+
args: [maxFee, nonce],
|
|
85
115
|
returnTypes: [],
|
|
86
116
|
},
|
|
87
117
|
];
|
|
@@ -4,18 +4,18 @@ import { FunctionSelector, FunctionType } from '@aztec/foundation/abi';
|
|
|
4
4
|
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
|
|
7
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
7
8
|
import { type AccountWallet } from '../wallet/account_wallet.js';
|
|
9
|
+
import { SignerlessWallet } from '../wallet/signerless_wallet.js';
|
|
8
10
|
import { type FeePaymentMethod } from './fee_payment_method.js';
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* Holds information about how the fee for a transaction is to be paid.
|
|
12
14
|
*/
|
|
13
15
|
export class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
16
|
+
private assetPromise: Promise<AztecAddress> | null = null;
|
|
17
|
+
|
|
14
18
|
constructor(
|
|
15
|
-
/**
|
|
16
|
-
* The asset used to pay the fee.
|
|
17
|
-
*/
|
|
18
|
-
protected asset: AztecAddress,
|
|
19
19
|
/**
|
|
20
20
|
* Address which will hold the fee payment.
|
|
21
21
|
*/
|
|
@@ -30,8 +30,43 @@ export class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
|
30
30
|
* The asset used to pay the fee.
|
|
31
31
|
* @returns The asset used to pay the fee.
|
|
32
32
|
*/
|
|
33
|
-
getAsset() {
|
|
34
|
-
|
|
33
|
+
getAsset(): Promise<AztecAddress> {
|
|
34
|
+
if (!this.assetPromise) {
|
|
35
|
+
// We use signer-less wallet because this function could be triggered before the associated account is deployed.
|
|
36
|
+
const signerlessWallet = new SignerlessWallet(this.wallet);
|
|
37
|
+
|
|
38
|
+
const interaction = new ContractFunctionInteraction(
|
|
39
|
+
signerlessWallet,
|
|
40
|
+
this.paymentContract,
|
|
41
|
+
{
|
|
42
|
+
name: 'get_accepted_asset',
|
|
43
|
+
functionType: FunctionType.PRIVATE,
|
|
44
|
+
isInternal: false,
|
|
45
|
+
isStatic: false,
|
|
46
|
+
parameters: [],
|
|
47
|
+
returnTypes: [
|
|
48
|
+
{
|
|
49
|
+
kind: 'struct',
|
|
50
|
+
path: 'authwit::aztec::protocol_types::address::aztec_address::AztecAddress',
|
|
51
|
+
fields: [
|
|
52
|
+
{
|
|
53
|
+
name: 'inner',
|
|
54
|
+
type: {
|
|
55
|
+
kind: 'field',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
errorTypes: {},
|
|
62
|
+
isInitializer: false,
|
|
63
|
+
},
|
|
64
|
+
[],
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
this.assetPromise = interaction.simulate();
|
|
68
|
+
}
|
|
69
|
+
return this.assetPromise!;
|
|
35
70
|
}
|
|
36
71
|
|
|
37
72
|
getFeePayer(): Promise<AztecAddress> {
|
|
@@ -43,7 +78,7 @@ export class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
|
43
78
|
* @param gasSettings - The gas settings.
|
|
44
79
|
* @returns The function call to pay the fee.
|
|
45
80
|
*/
|
|
46
|
-
getFunctionCalls(gasSettings: GasSettings): Promise<FunctionCall[]> {
|
|
81
|
+
async getFunctionCalls(gasSettings: GasSettings): Promise<FunctionCall[]> {
|
|
47
82
|
const nonce = Fr.random();
|
|
48
83
|
const maxFee = gasSettings.getFeeLimit();
|
|
49
84
|
|
|
@@ -58,7 +93,7 @@ export class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
|
58
93
|
selector: FunctionSelector.fromSignature('transfer_in_public((Field),(Field),Field,Field)'),
|
|
59
94
|
type: FunctionType.PUBLIC,
|
|
60
95
|
isStatic: false,
|
|
61
|
-
to: this.
|
|
96
|
+
to: await this.getAsset(),
|
|
62
97
|
returnTypes: [],
|
|
63
98
|
},
|
|
64
99
|
},
|
|
@@ -68,10 +103,10 @@ export class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
|
68
103
|
{
|
|
69
104
|
name: 'fee_entrypoint_public',
|
|
70
105
|
to: this.paymentContract,
|
|
71
|
-
selector: FunctionSelector.fromSignature('fee_entrypoint_public(Field,
|
|
106
|
+
selector: FunctionSelector.fromSignature('fee_entrypoint_public(Field,Field)'),
|
|
72
107
|
type: FunctionType.PRIVATE,
|
|
73
108
|
isStatic: false,
|
|
74
|
-
args: [maxFee,
|
|
109
|
+
args: [maxFee, nonce],
|
|
75
110
|
returnTypes: [],
|
|
76
111
|
},
|
|
77
112
|
]);
|
|
@@ -86,14 +86,14 @@ export abstract class BaseWallet implements Wallet {
|
|
|
86
86
|
getRegisteredAccount(address: AztecAddress): Promise<CompleteAddress | undefined> {
|
|
87
87
|
return this.pxe.getRegisteredAccount(address);
|
|
88
88
|
}
|
|
89
|
-
|
|
90
|
-
return this.pxe.
|
|
89
|
+
registerSender(address: AztecAddress): Promise<AztecAddress> {
|
|
90
|
+
return this.pxe.registerSender(address);
|
|
91
91
|
}
|
|
92
|
-
|
|
93
|
-
return this.pxe.
|
|
92
|
+
getSenders(): Promise<AztecAddress[]> {
|
|
93
|
+
return this.pxe.getSenders();
|
|
94
94
|
}
|
|
95
|
-
async
|
|
96
|
-
await this.pxe.
|
|
95
|
+
async removeSender(address: AztecAddress): Promise<void> {
|
|
96
|
+
await this.pxe.removeSender(address);
|
|
97
97
|
}
|
|
98
98
|
registerContract(contract: {
|
|
99
99
|
/** Instance */ instance: ContractInstanceWithAddress;
|
|
@@ -115,9 +115,18 @@ export abstract class BaseWallet implements Wallet {
|
|
|
115
115
|
simulatePublic: boolean,
|
|
116
116
|
msgSender?: AztecAddress,
|
|
117
117
|
skipTxValidation?: boolean,
|
|
118
|
+
enforceFeePayment?: boolean,
|
|
118
119
|
profile?: boolean,
|
|
119
120
|
): Promise<TxSimulationResult> {
|
|
120
|
-
return this.pxe.simulateTx(
|
|
121
|
+
return this.pxe.simulateTx(
|
|
122
|
+
txRequest,
|
|
123
|
+
simulatePublic,
|
|
124
|
+
msgSender,
|
|
125
|
+
skipTxValidation,
|
|
126
|
+
enforceFeePayment,
|
|
127
|
+
profile,
|
|
128
|
+
this.scopes,
|
|
129
|
+
);
|
|
121
130
|
}
|
|
122
131
|
sendTx(tx: Tx): Promise<TxHash> {
|
|
123
132
|
return this.pxe.sendTx(tx);
|