@aztec/aztec.js 0.43.0 → 0.44.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/interface.d.ts +5 -19
- package/dest/account/interface.d.ts.map +1 -1
- package/dest/account/interface.js +1 -1
- package/dest/account/wallet.d.ts +5 -2
- package/dest/account/wallet.d.ts.map +1 -1
- package/dest/api/abi.d.ts +1 -1
- package/dest/api/abi.d.ts.map +1 -1
- package/dest/api/abi.js +2 -2
- package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.js +12 -11
- package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/public_fee_payment_method.js +15 -12
- package/dest/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +3 -2
- package/dest/rpc_clients/pxe_client.d.ts.map +1 -1
- package/dest/rpc_clients/pxe_client.js +3 -1
- package/dest/utils/abi_types.d.ts +4 -2
- package/dest/utils/abi_types.d.ts.map +1 -1
- package/dest/utils/authwit.d.ts +45 -29
- package/dest/utils/authwit.d.ts.map +1 -1
- package/dest/utils/authwit.js +35 -17
- package/dest/wallet/account_wallet.d.ts +25 -72
- package/dest/wallet/account_wallet.d.ts.map +1 -1
- package/dest/wallet/account_wallet.js +65 -66
- package/dest/wallet/base_wallet.d.ts +3 -12
- package/dest/wallet/base_wallet.d.ts.map +1 -1
- package/dest/wallet/base_wallet.js +1 -1
- package/dest/wallet/signerless_wallet.d.ts +3 -1
- package/dest/wallet/signerless_wallet.d.ts.map +1 -1
- package/dest/wallet/signerless_wallet.js +2 -2
- package/package.json +16 -9
- package/src/account/interface.ts +5 -24
- package/src/account/wallet.ts +7 -2
- package/src/api/abi.ts +1 -1
- package/src/fee/private_fee_payment_method.ts +4 -8
- package/src/fee/public_fee_payment_method.ts +17 -16
- package/src/index.ts +3 -1
- package/src/rpc_clients/pxe_client.ts +2 -0
- package/src/utils/abi_types.ts +11 -2
- package/src/utils/authwit.ts +66 -21
- package/src/wallet/account_wallet.ts +76 -154
- package/src/wallet/base_wallet.ts +2 -17
- package/src/wallet/signerless_wallet.ts +2 -2
|
@@ -1,36 +1,22 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { type AuthWitness, type CompleteAddress
|
|
2
|
+
import { type AuthWitness, type CompleteAddress } from '@aztec/circuit-types';
|
|
3
3
|
import { type AztecAddress } from '@aztec/circuits.js';
|
|
4
4
|
import { type Fq, type Fr } from '@aztec/foundation/fields';
|
|
5
|
-
import { type ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
6
5
|
import { type EntrypointInterface } from '../entrypoint/entrypoint.js';
|
|
7
6
|
/** Creates authorization witnesses. */
|
|
8
7
|
export interface AuthWitnessProvider {
|
|
9
8
|
/**
|
|
10
|
-
* Computes an authentication witness from either a message hash
|
|
11
|
-
*
|
|
12
|
-
* Otherwise, it will compute the message hash using the caller and the action of the intent.
|
|
13
|
-
* @param messageHashOrIntent - The message hash or the intent (caller and action) to approve
|
|
14
|
-
* @param chainId - The chain id for the message, will default to the current chain id
|
|
15
|
-
* @param version - The version for the message, will default to the current protocol version
|
|
9
|
+
* Computes an authentication witness from either a message hash
|
|
10
|
+
* @param messageHash - The message hash to approve
|
|
16
11
|
* @returns The authentication witness
|
|
17
12
|
*/
|
|
18
|
-
createAuthWit(
|
|
19
|
-
/** The caller to approve */
|
|
20
|
-
caller: AztecAddress;
|
|
21
|
-
/** The action to approve */
|
|
22
|
-
action: ContractFunctionInteraction | FunctionCall;
|
|
23
|
-
/** The chain id to approve */
|
|
24
|
-
chainId?: Fr;
|
|
25
|
-
/** The version to approve */
|
|
26
|
-
version?: Fr;
|
|
27
|
-
}): Promise<AuthWitness>;
|
|
13
|
+
createAuthWit(messageHash: Fr | Buffer): Promise<AuthWitness>;
|
|
28
14
|
}
|
|
29
15
|
/**
|
|
30
16
|
* Handler for interfacing with an account. Knows how to create transaction execution
|
|
31
17
|
* requests and authorize actions for its corresponding account.
|
|
32
18
|
*/
|
|
33
|
-
export interface AccountInterface extends
|
|
19
|
+
export interface AccountInterface extends EntrypointInterface, AuthWitnessProvider {
|
|
34
20
|
/** Returns the complete address for this account. */
|
|
35
21
|
getCompleteAddress(): CompleteAddress;
|
|
36
22
|
/** Returns the address for this account. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/account/interface.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/account/interface.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/D;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB,EAAE,mBAAmB;IAChF,qDAAqD;IACrD,kBAAkB,IAAI,eAAe,CAAC;IAEtC,4CAA4C;IAC5C,UAAU,IAAI,YAAY,CAAC;IAE3B,4CAA4C;IAC5C,UAAU,IAAI,EAAE,CAAC;IAEjB,kDAAkD;IAClD,UAAU,IAAI,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;;;;;OAQG;IACH,mBAAmB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export {};
|
|
2
2
|
// docs:end:account-interface
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY291bnQvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFrREEsNkJBQTZCIn0=
|
package/dest/account/wallet.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { type PXE } from '@aztec/circuit-types';
|
|
1
|
+
import { type AuthWitness, type PXE } from '@aztec/circuit-types';
|
|
2
|
+
import { type IntentAction, type IntentInnerHash } from '../utils/authwit.js';
|
|
2
3
|
import { type AccountInterface, type AccountKeyRotationInterface } from './interface.js';
|
|
3
4
|
/**
|
|
4
5
|
* The wallet interface.
|
|
5
6
|
*/
|
|
6
|
-
export type Wallet = AccountInterface & PXE & AccountKeyRotationInterface
|
|
7
|
+
export type Wallet = AccountInterface & PXE & AccountKeyRotationInterface & {
|
|
8
|
+
createAuthWit(intent: IntentInnerHash | IntentAction): Promise<AuthWitness>;
|
|
9
|
+
};
|
|
7
10
|
//# sourceMappingURL=wallet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/account/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/account/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAEzF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,gBAAgB,GACnC,GAAG,GACH,2BAA2B,GAAG;IAC5B,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC7E,CAAC"}
|
package/dest/api/abi.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { type ContractArtifact, type FunctionArtifact, FunctionSelector } from '@aztec/foundation/abi';
|
|
1
|
+
export { type ContractArtifact, type FunctionArtifact, EventSelector, FunctionSelector } from '@aztec/foundation/abi';
|
|
2
2
|
export { loadContractArtifact, contractArtifactToBuffer, contractArtifactFromBuffer } from '@aztec/types/abi';
|
|
3
3
|
export { type NoirCompiledContract } from '@aztec/types/noir';
|
|
4
4
|
//# sourceMappingURL=abi.d.ts.map
|
package/dest/api/abi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/api/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/api/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtH,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dest/api/abi.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { FunctionSelector } from '@aztec/foundation/abi';
|
|
1
|
+
export { EventSelector, FunctionSelector } from '@aztec/foundation/abi';
|
|
2
2
|
export { loadContractArtifact, contractArtifactToBuffer, contractArtifactFromBuffer } from '@aztec/types/abi';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9hYmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnRCxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQyJ9
|
|
@@ -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;AAGtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,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;AAGtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;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,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAIpC;;;;OAIG;IACG,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CA8B1E"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { computeSecretHash } from '@aztec/circuits.js/hash';
|
|
2
2
|
import { FunctionSelector, FunctionType } from '@aztec/foundation/abi';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import { computeAuthWitMessageHash } from '../utils/authwit.js';
|
|
5
4
|
/**
|
|
6
5
|
* Holds information about how the fee for a transaction is to be paid.
|
|
7
6
|
*/
|
|
@@ -47,16 +46,18 @@ export class PrivateFeePaymentMethod {
|
|
|
47
46
|
async getFunctionCalls(gasSettings) {
|
|
48
47
|
const nonce = Fr.random();
|
|
49
48
|
const maxFee = gasSettings.getFeeLimit();
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
await this.wallet.createAuthWit({
|
|
50
|
+
caller: this.paymentContract,
|
|
51
|
+
action: {
|
|
52
|
+
name: 'unshield',
|
|
53
|
+
args: [this.wallet.getCompleteAddress().address, this.paymentContract, maxFee, nonce],
|
|
54
|
+
selector: FunctionSelector.fromSignature('unshield((Field),(Field),Field,Field)'),
|
|
55
|
+
type: FunctionType.PRIVATE,
|
|
56
|
+
isStatic: false,
|
|
57
|
+
to: this.asset,
|
|
58
|
+
returnTypes: [],
|
|
59
|
+
},
|
|
58
60
|
});
|
|
59
|
-
await this.wallet.createAuthWit(messageHash);
|
|
60
61
|
const secretHashForRebate = computeSecretHash(this.rebateSecret);
|
|
61
62
|
return [
|
|
62
63
|
{
|
|
@@ -71,4 +72,4 @@ export class PrivateFeePaymentMethod {
|
|
|
71
72
|
];
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9mZWVfcGF5bWVudF9tZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmVlL3ByaXZhdGVfZmVlX3BheW1lbnRfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLOUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDO0lBQ0U7O09BRUc7SUFDSyxLQUFtQjtJQUMzQjs7T0FFRztJQUNLLGVBQTZCO0lBRXJDOztPQUVHO0lBQ0ssTUFBYztJQUV0Qjs7O09BR0c7SUFDSyxlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUU7UUFmMUIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUluQixvQkFBZSxHQUFmLGVBQWUsQ0FBYztRQUs3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTWQsaUJBQVksR0FBWixZQUFZLENBQWM7SUFDakMsQ0FBQztJQUVKOzs7T0FHRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFdBQXdCO1FBQzdDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUM5QixNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDNUIsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztnQkFDckYsUUFBUSxFQUFFLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyx1Q0FBdUMsQ0FBQztnQkFDakYsSUFBSSxFQUFFLFlBQVksQ0FBQyxPQUFPO2dCQUMxQixRQUFRLEVBQUUsS0FBSztnQkFDZixFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2QsV0FBVyxFQUFFLEVBQUU7YUFDaEI7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVqRSxPQUFPO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLHdCQUF3QjtnQkFDOUIsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUN4QixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLG1EQUFtRCxDQUFDO2dCQUM3RixJQUFJLEVBQUUsWUFBWSxDQUFDLE9BQU87Z0JBQzFCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLEtBQUssQ0FBQztnQkFDdEQsV0FBVyxFQUFFLEVBQUU7YUFDaEI7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
|
|
@@ -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;AAGpE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;GAEG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAE3D;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,YAAY;IAC7B;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,YAAY;IACvC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa;;IAX/B;;OAEG;IACO,KAAK,EAAE,YAAY;IAC7B;;OAEG;IACO,eAAe,EAAE,YAAY;IACvC;;OAEG;IACO,MAAM,EAAE,aAAa;IAGjC;;;OAGG;IACH,QAAQ;IAIR,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAIpC;;;;OAIG;IACH,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAiCpE"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { FunctionSelector, FunctionType } from '@aztec/foundation/abi';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import { computeAuthWitMessageHash } from '../utils/authwit.js';
|
|
4
3
|
/**
|
|
5
4
|
* Holds information about how the fee for a transaction is to be paid.
|
|
6
5
|
*/
|
|
@@ -40,17 +39,21 @@ export class PublicFeePaymentMethod {
|
|
|
40
39
|
getFunctionCalls(gasSettings) {
|
|
41
40
|
const nonce = Fr.random();
|
|
42
41
|
const maxFee = gasSettings.getFeeLimit();
|
|
43
|
-
const messageHash = computeAuthWitMessageHash(this.paymentContract, this.wallet.getChainId(), this.wallet.getVersion(), {
|
|
44
|
-
name: 'transfer_public',
|
|
45
|
-
args: [this.wallet.getAddress(), this.paymentContract, maxFee, nonce],
|
|
46
|
-
selector: FunctionSelector.fromSignature('transfer_public((Field),(Field),Field,Field)'),
|
|
47
|
-
type: FunctionType.PUBLIC,
|
|
48
|
-
isStatic: false,
|
|
49
|
-
to: this.asset,
|
|
50
|
-
returnTypes: [],
|
|
51
|
-
});
|
|
52
42
|
return Promise.resolve([
|
|
53
|
-
this.wallet
|
|
43
|
+
this.wallet
|
|
44
|
+
.setPublicAuthWit({
|
|
45
|
+
caller: this.paymentContract,
|
|
46
|
+
action: {
|
|
47
|
+
name: 'transfer_public',
|
|
48
|
+
args: [this.wallet.getAddress(), this.paymentContract, maxFee, nonce],
|
|
49
|
+
selector: FunctionSelector.fromSignature('transfer_public((Field),(Field),Field,Field)'),
|
|
50
|
+
type: FunctionType.PUBLIC,
|
|
51
|
+
isStatic: false,
|
|
52
|
+
to: this.asset,
|
|
53
|
+
returnTypes: [],
|
|
54
|
+
},
|
|
55
|
+
}, true)
|
|
56
|
+
.request(),
|
|
54
57
|
{
|
|
55
58
|
name: 'fee_entrypoint_public',
|
|
56
59
|
to: this.paymentContract,
|
|
@@ -63,4 +66,4 @@ export class PublicFeePaymentMethod {
|
|
|
63
66
|
]);
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2ZlZV9wYXltZW50X21ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mZWUvcHVibGljX2ZlZV9wYXltZW50X21ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSzlDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQztJQUNFOztPQUVHO0lBQ08sS0FBbUI7SUFDN0I7O09BRUc7SUFDTyxlQUE2QjtJQUN2Qzs7T0FFRztJQUNPLE1BQXFCO1FBUnJCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFJbkIsb0JBQWUsR0FBZixlQUFlLENBQWM7UUFJN0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUM5QixDQUFDO0lBRUo7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxXQUF3QjtRQUN2QyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXpDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTTtpQkFDUixnQkFBZ0IsQ0FDZjtnQkFDRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQzVCLE1BQU0sRUFBRTtvQkFDTixJQUFJLEVBQUUsaUJBQWlCO29CQUN2QixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztvQkFDckUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyw4Q0FBOEMsQ0FBQztvQkFDeEYsSUFBSSxFQUFFLFlBQVksQ0FBQyxNQUFNO29CQUN6QixRQUFRLEVBQUUsS0FBSztvQkFDZixFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ2QsV0FBVyxFQUFFLEVBQUU7aUJBQ2hCO2FBQ0YsRUFDRCxJQUFJLENBQ0w7aUJBQ0EsT0FBTyxFQUFFO1lBQ1o7Z0JBQ0UsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUN4QixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLDRDQUE0QyxDQUFDO2dCQUN0RixJQUFJLEVBQUUsWUFBWSxDQUFDLE9BQU87Z0JBQzFCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztnQkFDakMsV0FBVyxFQUFFLEVBQUU7YUFDaEI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
|
package/dest/index.d.ts
CHANGED
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
*/
|
|
22
22
|
export { BatchCall, Contract, ContractBase, ContractFunctionInteraction, type ContractMethod, type ContractNotes, type ContractStorageLayout, DeployMethod, DeploySentTx, type SendMethodOptions, SentTx, type WaitOpts, } from './contract/index.js';
|
|
23
23
|
export { ContractDeployer } from './deployment/index.js';
|
|
24
|
-
export { AztecAddressLike, CheatCodes, EthAddressLike, EthCheatCodes, FieldLike, FunctionSelectorLike, WrappedFieldLike, computeAuthWitMessageHash,
|
|
24
|
+
export { AztecAddressLike, CheatCodes, EthAddressLike, EthCheatCodes, EventSelectorLike, FieldLike, FunctionSelectorLike, WrappedFieldLike, computeAuthWitMessageHash, computeInnerAuthWitHashFromAction, computeInnerAuthWitHash, generatePublicKey, waitForAccountSynch, waitForPXE, } from './utils/index.js';
|
|
25
|
+
export { NoteSelector } from '@aztec/foundation/abi';
|
|
25
26
|
export { createPXEClient } from './rpc_clients/index.js';
|
|
26
27
|
export { AuthWitnessProvider } from './account/index.js';
|
|
27
28
|
export { AccountContract } from './account/index.js';
|
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,2BAA2B,EAC3B,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,YAAY,EACZ,YAAY,EACZ,KAAK,iBAAiB,EACtB,MAAM,EACN,KAAK,QAAQ,GACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dest/index.js
CHANGED
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
*/
|
|
22
22
|
export { BatchCall, Contract, ContractBase, ContractFunctionInteraction, DeployMethod, DeploySentTx, SentTx, } from './contract/index.js';
|
|
23
23
|
export { ContractDeployer } from './deployment/index.js';
|
|
24
|
-
export { CheatCodes, EthCheatCodes, computeAuthWitMessageHash,
|
|
24
|
+
export { CheatCodes, EthCheatCodes, computeAuthWitMessageHash, computeInnerAuthWitHashFromAction, computeInnerAuthWitHash, generatePublicKey, waitForAccountSynch, waitForPXE, } from './utils/index.js';
|
|
25
|
+
export { NoteSelector } from '@aztec/foundation/abi';
|
|
25
26
|
export { createPXEClient } from './rpc_clients/index.js';
|
|
26
27
|
export { AccountManager } from './account_manager/index.js';
|
|
27
28
|
export { AccountWallet, AccountWalletWithSecretKey, SignerlessWallet } from './wallet/index.js';
|
|
@@ -52,4 +53,4 @@ export { deployL1Contract, deployL1Contracts, } from '@aztec/ethereum';
|
|
|
52
53
|
export * from './api/abi.js';
|
|
53
54
|
export * from './api/fee.js';
|
|
54
55
|
export * from './api/init.js';
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLDJCQUEyQixFQUkzQixZQUFZLEVBQ1osWUFBWSxFQUVaLE1BQU0sR0FFUCxNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFFTCxVQUFVLEVBRVYsYUFBYSxFQUtiLHlCQUF5QixFQUN6QixpQ0FBaUMsRUFDakMsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsVUFBVSxHQUNYLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUt6RCxPQUFPLEVBQUUsY0FBYyxFQUF3QixNQUFNLDRCQUE0QixDQUFDO0FBRWxGLE9BQU8sRUFBRSxhQUFhLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQVUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4Ryx3SEFBd0g7QUFDeEgsc0NBQXNDO0FBQ3RDLE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLEVBQUUsRUFDRixFQUFFLEVBQ0YsZUFBZSxFQUNmLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsS0FBSyxFQUNMLDRCQUE0QixFQUM1QixtQ0FBbUMsR0FDcEMsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLFVBQVUsRUFDVixvQ0FBb0MsRUFDcEMsOEJBQThCLEdBQy9CLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQ0wsV0FBVyxFQUVYLElBQUksRUFDSixVQUFVLEVBQ1YsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osWUFBWSxFQUNaLGtCQUFrQixFQUNsQixPQUFPLEVBQ1AsYUFBYSxFQUNiLE9BQU8sRUFDUCxPQUFPLEVBQ1AsYUFBYSxFQUNiLDBCQUEwQixFQUUxQixLQUFLLEVBQ0wsT0FBTyxFQUNQLFlBQVksRUFDWixJQUFJLEVBRUosWUFBWSxFQUdaLFdBQVcsRUFFWCxFQUFFLEVBQ0Ysa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixTQUFTLEVBQ1QsUUFBUSxFQUNSLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixNQUFNLEVBQ04sU0FBUyxFQUNULGFBQWEsRUFDYixjQUFjLEdBQ2YsTUFBTSxzQkFBc0IsQ0FBQztBQUs5QiwrREFBK0Q7QUFDL0Qsb0ZBQW9GO0FBQ3BGLHNHQUFzRztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFlLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxPQUFPLEVBR0wsZ0JBQWdCLEVBQ2hCLGlCQUFpQixHQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLDZEQUE2RDtBQUM3RCxzRkFBc0Y7QUFDdEYsaUZBQWlGO0FBQ2pGLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe_client.d.ts","sourceRoot":"","sources":["../../src/rpc_clients/pxe_client.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,GAAG,EAQT,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"pxe_client.d.ts","sourceRoot":"","sources":["../../src/rpc_clients/pxe_client.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,GAAG,EAQT,MAAM,sBAAsB,CAAC;AAa9B;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAS,MAAM,qGAAwC,GA0BzE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AuthWitness, EncryptedNoteL2BlockL2Logs, ExtendedNote, ExtendedUnencryptedL2Log, L2Block, LogId, Note, NullifierMembershipWitness, SimulatedTx, Tx, TxEffect, TxExecutionRequest, TxHash, TxReceipt, UnencryptedL2BlockL2Logs, } from '@aztec/circuit-types';
|
|
2
2
|
import { AztecAddress, CompleteAddress, EthAddress, Fr, FunctionSelector, GrumpkinScalar, Point, } from '@aztec/circuits.js';
|
|
3
|
+
import { NoteSelector } from '@aztec/foundation/abi';
|
|
3
4
|
import { createJsonRpcClient, makeFetch } from '@aztec/foundation/json-rpc/client';
|
|
4
5
|
/**
|
|
5
6
|
* Creates a JSON-RPC client to remotely talk to PXE.
|
|
@@ -24,5 +25,6 @@ export const createPXEClient = (url, fetch = makeFetch([1, 2, 3], false)) => cre
|
|
|
24
25
|
Point,
|
|
25
26
|
TxExecutionRequest,
|
|
26
27
|
TxHash,
|
|
28
|
+
NoteSelector,
|
|
27
29
|
}, { Tx, SimulatedTx, TxReceipt, EncryptedNoteL2BlockL2Logs, UnencryptedL2BlockL2Logs, NullifierMembershipWitness }, false, 'pxe', fetch);
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ycGNfY2xpZW50cy9weGVfY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsMEJBQTBCLEVBQzFCLFlBQVksRUFDWix3QkFBd0IsRUFDeEIsT0FBTyxFQUNQLEtBQUssRUFDTCxJQUFJLEVBQ0osMEJBQTBCLEVBRTFCLFdBQVcsRUFDWCxFQUFFLEVBQ0YsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixNQUFNLEVBQ04sU0FBUyxFQUNULHdCQUF3QixHQUN6QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixFQUFFLEVBQ0YsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxLQUFLLEdBQ04sTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRW5GOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFPLEVBQUUsQ0FDdkYsbUJBQW1CLENBQ2pCLEdBQUcsRUFDSDtJQUNFLFdBQVc7SUFDWCxZQUFZO0lBQ1osZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsWUFBWTtJQUNaLHdCQUF3QjtJQUN4QixFQUFFO0lBQ0YsY0FBYztJQUNkLE9BQU87SUFDUCxRQUFRO0lBQ1IsS0FBSztJQUNMLElBQUk7SUFDSixLQUFLO0lBQ0wsa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixZQUFZO0NBQ2IsRUFDRCxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLEVBQ2hILEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxDQUNDLENBQUMifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { type AztecAddress, type EthAddress, type Fr, type FunctionSelector } from '@aztec/circuits.js';
|
|
2
|
+
import { type AztecAddress, type EthAddress, type EventSelector, type Fr, type FunctionSelector } from '@aztec/circuits.js';
|
|
3
3
|
/** Any type that can be converted into a field for a contract call. */
|
|
4
4
|
export type FieldLike = Fr | Buffer | bigint | number | {
|
|
5
5
|
toField: () => Fr;
|
|
@@ -12,8 +12,10 @@ export type EthAddressLike = {
|
|
|
12
12
|
export type AztecAddressLike = {
|
|
13
13
|
address: FieldLike;
|
|
14
14
|
} | AztecAddress;
|
|
15
|
-
/** Any type that can be converted into
|
|
15
|
+
/** Any type that can be converted into a FunctionSelector Aztec.nr struct. */
|
|
16
16
|
export type FunctionSelectorLike = FieldLike | FunctionSelector;
|
|
17
|
+
/** Any type that can be converted into an EventSelector Aztec.nr struct. */
|
|
18
|
+
export type EventSelectorLike = FieldLike | EventSelector;
|
|
17
19
|
/** Any type that can be converted into a struct with a single `inner` field. */
|
|
18
20
|
export type WrappedFieldLike = {
|
|
19
21
|
inner: FieldLike;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi_types.d.ts","sourceRoot":"","sources":["../../src/utils/abi_types.ts"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"abi_types.d.ts","sourceRoot":"","sources":["../../src/utils/abi_types.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,EAAE,EACP,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,uEAAuE;AACvE,MAAM,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG;IAA2B,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvG,yEAAyE;AACzE,MAAM,MAAM,cAAc,GAAG;IAAyB,OAAO,EAAE,SAAS,CAAA;CAAE,GAAG,UAAU,CAAC;AAExF,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GAAG;IAAyB,OAAO,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAAC;AAE5F,8EAA8E;AAC9E,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAEhE,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,aAAa,CAAC;AAE1D,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG;IAAuB,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CAAC"}
|
package/dest/utils/authwit.d.ts
CHANGED
|
@@ -1,20 +1,51 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
1
2
|
import { type FunctionCall } from '@aztec/circuit-types';
|
|
2
|
-
import { type AztecAddress,
|
|
3
|
+
import { type AztecAddress, Fr } from '@aztec/circuits.js';
|
|
4
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
5
|
+
/** Metadata for the intent */
|
|
6
|
+
export type IntentMetadata = {
|
|
7
|
+
/** The chain id to approve */
|
|
8
|
+
chainId: Fr;
|
|
9
|
+
/** The version to approve */
|
|
10
|
+
version: Fr;
|
|
11
|
+
};
|
|
12
|
+
/** Intent with an inner hash */
|
|
13
|
+
export type IntentInnerHash = {
|
|
14
|
+
/** The consumer */
|
|
15
|
+
consumer: AztecAddress;
|
|
16
|
+
/** The action to approve */
|
|
17
|
+
innerHash: Buffer | Fr;
|
|
18
|
+
};
|
|
19
|
+
/** Intent with an action */
|
|
20
|
+
export type IntentAction = {
|
|
21
|
+
/** The caller to approve */
|
|
22
|
+
caller: AztecAddress;
|
|
23
|
+
/** The action to approve */
|
|
24
|
+
action: ContractFunctionInteraction | FunctionCall;
|
|
25
|
+
};
|
|
3
26
|
/**
|
|
4
|
-
* Compute an authentication witness message hash from
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* `
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
27
|
+
* Compute an authentication witness message hash from an intent and metadata
|
|
28
|
+
*
|
|
29
|
+
* If using the `IntentInnerHash`, the consumer is the address that can "consume" the authwit, for token approvals it is the token contract itself.
|
|
30
|
+
* The `innerHash` itself will be the message that a contract is allowed to execute.
|
|
31
|
+
* At the point of "approval checking", the validating contract (account for private and registry for public) will be computing the message hash
|
|
32
|
+
* (`H(consumer, chainid, version, inner_hash)`) where the all but the `inner_hash` is injected from the context (consumer = msg_sender),
|
|
33
|
+
* and use it for the authentication check.
|
|
34
|
+
* Therefore, any allowed `innerHash` will therefore also have information around where it can be spent (version, chainId) and who can spend it (consumer).
|
|
35
|
+
*
|
|
36
|
+
* If using the `IntentAction`, the caller is the address that is making the call, for a token approval from Alice to Bob, this would be Bob.
|
|
37
|
+
* The action is then used along with the `caller` to compute the `innerHash` and the consumer.
|
|
38
|
+
*
|
|
39
|
+
*
|
|
40
|
+
* @param intent - The intent to approve (consumer and innerHash or caller and action)
|
|
41
|
+
* The consumer is the address that can "consume" the authwit, for token approvals it is the token contract itself.
|
|
42
|
+
* The caller is the address that is making the call, for a token approval from Alice to Bob, this would be Bob.
|
|
43
|
+
* The caller becomes part of the `inner_hash` and is dealt with entirely in application logic.
|
|
44
|
+
* @param metadata - The metadata for the intent (chainId, version)
|
|
45
|
+
* @returns The message hash for the action
|
|
16
46
|
*/
|
|
17
|
-
export declare const computeAuthWitMessageHash: (
|
|
47
|
+
export declare const computeAuthWitMessageHash: (intent: IntentInnerHash | IntentAction, metadata: IntentMetadata) => Fr;
|
|
48
|
+
export declare const computeInnerAuthWitHashFromAction: (caller: AztecAddress, action: FunctionCall) => Fr;
|
|
18
49
|
/**
|
|
19
50
|
* Compute the inner hash for an authentication witness.
|
|
20
51
|
* This is the "intent" of the message, before siloed with the consumer.
|
|
@@ -24,19 +55,4 @@ export declare const computeAuthWitMessageHash: (caller: AztecAddress, chainId:
|
|
|
24
55
|
* @returns The inner hash for the witness
|
|
25
56
|
*/
|
|
26
57
|
export declare const computeInnerAuthWitHash: (args: Fr[]) => Fr;
|
|
27
|
-
/**
|
|
28
|
-
* Compute the outer hash for an authentication witness.
|
|
29
|
-
* This is the value siloed with its "consumer" and what the `on_behalf_of`
|
|
30
|
-
* should be signing.
|
|
31
|
-
* The consumer is who will be consuming the message, for token approvals it
|
|
32
|
-
* is the token contract itself (because the token makes the call to check the approval).
|
|
33
|
-
* It is used as part of the `computeAuthWitMessageHash` but can also be used
|
|
34
|
-
* in case the message is not a "call" to a function, but arbitrary data.
|
|
35
|
-
* @param consumer - The address that can "consume" the authwit
|
|
36
|
-
* @param chainId - The chain id that can "consume" the authwit
|
|
37
|
-
* @param version - The version that can "consume" the authwit
|
|
38
|
-
* @param innerHash - The inner hash for the witness
|
|
39
|
-
* @returns The outer hash for the witness
|
|
40
|
-
*/
|
|
41
|
-
export declare const computeOuterAuthWitHash: (consumer: AztecAddress, chainId: Fr, version: Fr, innerHash: Fr) => Fr;
|
|
42
58
|
//# sourceMappingURL=authwit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authwit.d.ts","sourceRoot":"","sources":["../../src/utils/authwit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"authwit.d.ts","sourceRoot":"","sources":["../../src/utils/authwit.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,EAAkB,MAAM,oBAAoB,CAAC;AAG3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAE3F,8BAA8B;AAC9B,MAAM,MAAM,cAAc,GAAG;IAC3B,8BAA8B;IAC9B,OAAO,EAAE,EAAE,CAAC;IACZ,8BAA8B;IAC9B,OAAO,EAAE,EAAE,CAAC;CACb,CAAC;AAEF,gCAAgC;AAChC,MAAM,MAAM,eAAe,GAAG;IAC5B,qBAAqB;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC;CACxB,CAAC;AAEF,4BAA4B;AAC5B,MAAM,MAAM,YAAY,GAAG;IACzB,6BAA6B;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,4BAA4B;IAC5B,MAAM,EAAE,2BAA2B,GAAG,YAAY,CAAC;CACpD,CAAC;AAGF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,yBAAyB,WAAY,eAAe,GAAG,YAAY,YAAY,cAAc,OAgBzG,CAAC;AAGF,eAAO,MAAM,iCAAiC,WAAY,YAAY,UAAU,YAAY,OACuB,CAAC;AAEpH;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,SAAU,EAAE,EAAE,OAEjD,CAAC"}
|
package/dest/utils/authwit.js
CHANGED
|
@@ -1,25 +1,43 @@
|
|
|
1
1
|
import { PackedValues } from '@aztec/circuit-types';
|
|
2
|
-
import { GeneratorIndex } from '@aztec/circuits.js';
|
|
2
|
+
import { Fr, GeneratorIndex } from '@aztec/circuits.js';
|
|
3
3
|
import { pedersenHash } from '@aztec/foundation/crypto';
|
|
4
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
4
5
|
// docs:start:authwit_computeAuthWitMessageHash
|
|
5
6
|
/**
|
|
6
|
-
* Compute an authentication witness message hash from
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* `
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
7
|
+
* Compute an authentication witness message hash from an intent and metadata
|
|
8
|
+
*
|
|
9
|
+
* If using the `IntentInnerHash`, the consumer is the address that can "consume" the authwit, for token approvals it is the token contract itself.
|
|
10
|
+
* The `innerHash` itself will be the message that a contract is allowed to execute.
|
|
11
|
+
* At the point of "approval checking", the validating contract (account for private and registry for public) will be computing the message hash
|
|
12
|
+
* (`H(consumer, chainid, version, inner_hash)`) where the all but the `inner_hash` is injected from the context (consumer = msg_sender),
|
|
13
|
+
* and use it for the authentication check.
|
|
14
|
+
* Therefore, any allowed `innerHash` will therefore also have information around where it can be spent (version, chainId) and who can spend it (consumer).
|
|
15
|
+
*
|
|
16
|
+
* If using the `IntentAction`, the caller is the address that is making the call, for a token approval from Alice to Bob, this would be Bob.
|
|
17
|
+
* The action is then used along with the `caller` to compute the `innerHash` and the consumer.
|
|
18
|
+
*
|
|
19
|
+
*
|
|
20
|
+
* @param intent - The intent to approve (consumer and innerHash or caller and action)
|
|
21
|
+
* The consumer is the address that can "consume" the authwit, for token approvals it is the token contract itself.
|
|
22
|
+
* The caller is the address that is making the call, for a token approval from Alice to Bob, this would be Bob.
|
|
23
|
+
* The caller becomes part of the `inner_hash` and is dealt with entirely in application logic.
|
|
24
|
+
* @param metadata - The metadata for the intent (chainId, version)
|
|
25
|
+
* @returns The message hash for the action
|
|
18
26
|
*/
|
|
19
|
-
export const computeAuthWitMessageHash = (
|
|
20
|
-
|
|
27
|
+
export const computeAuthWitMessageHash = (intent, metadata) => {
|
|
28
|
+
const chainId = metadata.chainId;
|
|
29
|
+
const version = metadata.version;
|
|
30
|
+
if ('caller' in intent) {
|
|
31
|
+
const action = intent.action instanceof ContractFunctionInteraction ? intent.action.request() : intent.action;
|
|
32
|
+
return computeOuterAuthWitHash(action.to.toField(), chainId, version, computeInnerAuthWitHashFromAction(intent.caller, action));
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
const inner = Buffer.isBuffer(intent.innerHash) ? Fr.fromBuffer(intent.innerHash) : intent.innerHash;
|
|
36
|
+
return computeOuterAuthWitHash(intent.consumer, chainId, version, inner);
|
|
37
|
+
}
|
|
21
38
|
};
|
|
22
39
|
// docs:end:authwit_computeAuthWitMessageHash
|
|
40
|
+
export const computeInnerAuthWitHashFromAction = (caller, action) => computeInnerAuthWitHash([caller.toField(), action.selector.toField(), PackedValues.fromValues(action.args).hash]);
|
|
23
41
|
/**
|
|
24
42
|
* Compute the inner hash for an authentication witness.
|
|
25
43
|
* This is the "intent" of the message, before siloed with the consumer.
|
|
@@ -45,7 +63,7 @@ export const computeInnerAuthWitHash = (args) => {
|
|
|
45
63
|
* @param innerHash - The inner hash for the witness
|
|
46
64
|
* @returns The outer hash for the witness
|
|
47
65
|
*/
|
|
48
|
-
|
|
66
|
+
const computeOuterAuthWitHash = (consumer, chainId, version, innerHash) => {
|
|
49
67
|
return pedersenHash([consumer.toField(), chainId, version, innerHash], GeneratorIndex.AUTHWIT_OUTER);
|
|
50
68
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aHdpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hdXRod2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxFQUFxQixFQUFFLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXhELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBMEIzRiwrQ0FBK0M7QUFDL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxNQUFzQyxFQUFFLFFBQXdCLEVBQUUsRUFBRTtJQUM1RyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFFakMsSUFBSSxRQUFRLElBQUksTUFBTSxFQUFFLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sWUFBWSwyQkFBMkIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM5RyxPQUFPLHVCQUF1QixDQUM1QixNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUNuQixPQUFPLEVBQ1AsT0FBTyxFQUNQLGlDQUFpQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyRyxPQUFPLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzRSxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBQ0YsNkNBQTZDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsTUFBb0IsRUFBRSxNQUFvQixFQUFFLEVBQUUsQ0FDOUYsdUJBQXVCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBRXBIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLElBQVUsRUFBRSxFQUFFO0lBQ3BELE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDMUQsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxRQUFzQixFQUFFLE9BQVcsRUFBRSxPQUFXLEVBQUUsU0FBYSxFQUFFLEVBQUU7SUFDbEcsT0FBTyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDdkcsQ0FBQyxDQUFDIn0=
|