@aztec/aztec.js 0.28.1 → 0.29.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 +17 -6
- package/dest/account/interface.d.ts.map +1 -1
- package/dest/account/interface.js +1 -1
- package/dest/account_manager/index.d.ts.map +1 -1
- package/dest/account_manager/index.js +2 -1
- package/dest/contract/deploy_method.d.ts.map +1 -1
- package/dest/contract/deploy_method.js +4 -3
- package/dest/deployment/deploy_instance.d.ts +1 -4
- package/dest/deployment/deploy_instance.d.ts.map +1 -1
- package/dest/deployment/deploy_instance.js +9 -6
- package/dest/fee/native_fee_payment_method.js +3 -3
- package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.js +4 -4
- package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/public_fee_payment_method.js +4 -4
- package/dest/index.d.ts +4 -3
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +5 -4
- package/dest/rpc_clients/pxe_client.d.ts.map +1 -1
- package/dest/rpc_clients/pxe_client.js +2 -4
- package/dest/utils/authwit.d.ts +2 -2
- package/dest/utils/authwit.d.ts.map +1 -1
- package/dest/utils/authwit.js +6 -6
- package/dest/utils/index.d.ts +0 -1
- package/dest/utils/index.d.ts.map +1 -1
- package/dest/utils/index.js +1 -2
- package/dest/wallet/account_wallet.d.ts +36 -8
- package/dest/wallet/account_wallet.d.ts.map +1 -1
- package/dest/wallet/account_wallet.js +36 -9
- package/dest/wallet/base_wallet.d.ts +11 -4
- package/dest/wallet/base_wallet.d.ts.map +1 -1
- package/dest/wallet/base_wallet.js +7 -7
- package/dest/wallet/signerless_wallet.d.ts +1 -1
- package/dest/wallet/signerless_wallet.d.ts.map +1 -1
- package/dest/wallet/signerless_wallet.js +2 -2
- package/package.json +7 -7
- package/src/account/interface.ts +22 -6
- package/src/account_manager/index.ts +1 -0
- package/src/contract/deploy_method.ts +2 -1
- package/src/deployment/deploy_instance.ts +11 -10
- package/src/fee/native_fee_payment_method.ts +2 -2
- package/src/fee/private_fee_payment_method.ts +2 -9
- package/src/fee/public_fee_payment_method.ts +1 -5
- package/src/index.ts +1 -4
- package/src/rpc_clients/pxe_client.ts +0 -4
- package/src/utils/authwit.ts +5 -5
- package/src/utils/index.ts +0 -1
- package/src/wallet/account_wallet.ts +76 -9
- package/src/wallet/base_wallet.ts +18 -9
- package/src/wallet/signerless_wallet.ts +1 -1
- package/dest/utils/l2_contracts.d.ts +0 -10
- package/dest/utils/l2_contracts.d.ts.map +0 -1
- package/dest/utils/l2_contracts.js +0 -10
- package/src/utils/l2_contracts.ts +0 -12
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Fr } from '@aztec/circuits.js';
|
|
2
2
|
import { FunctionType } from '@aztec/foundation/abi';
|
|
3
3
|
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
4
|
+
import { computeAuthWitMessageHash } from '../utils/authwit.js';
|
|
4
5
|
import { BaseWallet } from './base_wallet.js';
|
|
5
6
|
/**
|
|
6
7
|
* A wallet implementation that forwards authentication requests to a provided account.
|
|
@@ -13,20 +14,45 @@ export class AccountWallet extends BaseWallet {
|
|
|
13
14
|
createTxExecutionRequest(execs, fee) {
|
|
14
15
|
return this.account.createTxExecutionRequest(execs, fee);
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Computes an authentication witness from either a message or a caller and an action.
|
|
19
|
+
* If a message is provided, it will create a witness for the message directly.
|
|
20
|
+
* Otherwise, it will compute the message using the caller and the action.
|
|
21
|
+
* @param messageHashOrIntent - The message or the caller and action to approve
|
|
22
|
+
* @returns The authentication witness
|
|
23
|
+
*/
|
|
24
|
+
async createAuthWit(messageHashOrIntent) {
|
|
25
|
+
const messageHash = this.getMessageHash(messageHashOrIntent);
|
|
26
|
+
const witness = await this.account.createAuthWit(messageHash);
|
|
19
27
|
await this.pxe.addAuthWitness(witness);
|
|
20
28
|
return witness;
|
|
21
29
|
}
|
|
22
30
|
/**
|
|
23
|
-
* Returns
|
|
31
|
+
* Returns the message hash for the given message or authwit input.
|
|
32
|
+
* @param messageHashOrIntent - The message hash or the caller and action to authorize
|
|
33
|
+
* @returns The message hash
|
|
34
|
+
*/
|
|
35
|
+
getMessageHash(messageHashOrIntent) {
|
|
36
|
+
if (Buffer.isBuffer(messageHashOrIntent)) {
|
|
37
|
+
return Fr.fromBuffer(messageHashOrIntent);
|
|
38
|
+
}
|
|
39
|
+
else if (messageHashOrIntent instanceof Fr) {
|
|
40
|
+
return messageHashOrIntent;
|
|
41
|
+
}
|
|
42
|
+
else if (messageHashOrIntent.action instanceof ContractFunctionInteraction) {
|
|
43
|
+
return computeAuthWitMessageHash(messageHashOrIntent.caller, messageHashOrIntent.action.request());
|
|
44
|
+
}
|
|
45
|
+
return computeAuthWitMessageHash(messageHashOrIntent.caller, messageHashOrIntent.action);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns a function interaction to set a message hash as authorized or revoked in this account.
|
|
24
49
|
* Public calls can then consume this authorization.
|
|
25
|
-
* @param
|
|
50
|
+
* @param messageHashOrIntent - The message or the caller and action to authorize/revoke
|
|
26
51
|
* @param authorized - True to authorize, false to revoke authorization.
|
|
27
52
|
* @returns - A function interaction.
|
|
28
53
|
*/
|
|
29
|
-
|
|
54
|
+
setPublicAuthWit(messageHashOrIntent, authorized) {
|
|
55
|
+
const message = this.getMessageHash(messageHashOrIntent);
|
|
30
56
|
if (authorized) {
|
|
31
57
|
return new ContractFunctionInteraction(this, this.getAddress(), this.getApprovePublicAuthwitAbi(), [message]);
|
|
32
58
|
}
|
|
@@ -36,10 +62,11 @@ export class AccountWallet extends BaseWallet {
|
|
|
36
62
|
}
|
|
37
63
|
/**
|
|
38
64
|
* Returns a function interaction to cancel a message hash as authorized in this account.
|
|
39
|
-
* @param
|
|
65
|
+
* @param messageHashOrIntent - The message or the caller and action to authorize/revoke
|
|
40
66
|
* @returns - A function interaction.
|
|
41
67
|
*/
|
|
42
|
-
cancelAuthWit(
|
|
68
|
+
cancelAuthWit(messageHashOrIntent) {
|
|
69
|
+
const message = this.getMessageHash(messageHashOrIntent);
|
|
43
70
|
const args = [message];
|
|
44
71
|
return new ContractFunctionInteraction(this, this.getAddress(), this.getCancelAuthwitAbi(), args);
|
|
45
72
|
}
|
|
@@ -84,4 +111,4 @@ export class AccountWallet extends BaseWallet {
|
|
|
84
111
|
};
|
|
85
112
|
}
|
|
86
113
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF93YWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L2FjY291bnRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUF1QyxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcxRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVU7SUFDM0MsWUFBWSxHQUFRLEVBQVksT0FBeUI7UUFDdkQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRG1CLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBRXpELENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUFxQixFQUFFLEdBQWdCO1FBQzlELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQ2pCLG1CQVFLO1FBRUwsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUQsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGNBQWMsQ0FDcEIsbUJBUUs7UUFF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
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { AuthWitness, DeployedContract, ExtendedNote, FunctionCall, GetUnencryptedLogsResponse, L2Block, LogFilter, NoteFilter, PXE, SyncStatus, Tx, TxEffect, TxExecutionRequest, TxHash, TxReceipt } from '@aztec/circuit-types';
|
|
2
3
|
import { AztecAddress, CompleteAddress, Fr, GrumpkinPrivateKey, PartialAddress } from '@aztec/circuits.js';
|
|
3
4
|
import { ContractClassWithId, ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
4
5
|
import { NodeInfo } from '@aztec/types/interfaces';
|
|
5
6
|
import { FeeOptions } from '../account/interface.js';
|
|
6
7
|
import { Wallet } from '../account/wallet.js';
|
|
8
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
7
9
|
/**
|
|
8
10
|
* A base class for Wallet implementations
|
|
9
11
|
*/
|
|
@@ -12,7 +14,13 @@ export declare abstract class BaseWallet implements Wallet {
|
|
|
12
14
|
constructor(pxe: PXE);
|
|
13
15
|
abstract getCompleteAddress(): CompleteAddress;
|
|
14
16
|
abstract createTxExecutionRequest(execs: FunctionCall[], fee?: FeeOptions): Promise<TxExecutionRequest>;
|
|
15
|
-
abstract
|
|
17
|
+
abstract createAuthWit(messageHashOrIntent: Fr | Buffer | {
|
|
18
|
+
/** The caller to approve */
|
|
19
|
+
caller: AztecAddress;
|
|
20
|
+
/** The action to approve */
|
|
21
|
+
action: ContractFunctionInteraction | FunctionCall;
|
|
22
|
+
}): Promise<AuthWitness>;
|
|
23
|
+
getAddress(): AztecAddress;
|
|
16
24
|
getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
|
|
17
25
|
getContractClass(id: Fr): Promise<ContractClassWithId | undefined>;
|
|
18
26
|
addCapsule(capsule: Fr[]): Promise<void>;
|
|
@@ -34,8 +42,6 @@ export declare abstract class BaseWallet implements Wallet {
|
|
|
34
42
|
addNote(note: ExtendedNote): Promise<void>;
|
|
35
43
|
getBlock(number: number): Promise<L2Block | undefined>;
|
|
36
44
|
viewTx(functionName: string, args: any[], to: AztecAddress, from?: AztecAddress | undefined): Promise<any>;
|
|
37
|
-
getExtendedContractData(contractAddress: AztecAddress): Promise<ExtendedContractData | undefined>;
|
|
38
|
-
getContractData(contractAddress: AztecAddress): Promise<ContractData | undefined>;
|
|
39
45
|
getUnencryptedLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse>;
|
|
40
46
|
getBlockNumber(): Promise<number>;
|
|
41
47
|
getNodeInfo(): Promise<NodeInfo>;
|
|
@@ -44,5 +50,6 @@ export declare abstract class BaseWallet implements Wallet {
|
|
|
44
50
|
getSyncStatus(): Promise<SyncStatus>;
|
|
45
51
|
addAuthWitness(authWitness: AuthWitness): Promise<void>;
|
|
46
52
|
isContractClassPubliclyRegistered(id: Fr): Promise<boolean>;
|
|
53
|
+
isContractPubliclyDeployed(address: AztecAddress): Promise<boolean>;
|
|
47
54
|
}
|
|
48
55
|
//# sourceMappingURL=base_wallet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/base_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/base_wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,9 @@ export class BaseWallet {
|
|
|
5
5
|
constructor(pxe) {
|
|
6
6
|
this.pxe = pxe;
|
|
7
7
|
}
|
|
8
|
+
getAddress() {
|
|
9
|
+
return this.getCompleteAddress().address;
|
|
10
|
+
}
|
|
8
11
|
getContractInstance(address) {
|
|
9
12
|
return this.pxe.getContractInstance(address);
|
|
10
13
|
}
|
|
@@ -69,12 +72,6 @@ export class BaseWallet {
|
|
|
69
72
|
viewTx(functionName, args, to, from) {
|
|
70
73
|
return this.pxe.viewTx(functionName, args, to, from);
|
|
71
74
|
}
|
|
72
|
-
getExtendedContractData(contractAddress) {
|
|
73
|
-
return this.pxe.getExtendedContractData(contractAddress);
|
|
74
|
-
}
|
|
75
|
-
getContractData(contractAddress) {
|
|
76
|
-
return this.pxe.getContractData(contractAddress);
|
|
77
|
-
}
|
|
78
75
|
getUnencryptedLogs(filter) {
|
|
79
76
|
return this.pxe.getUnencryptedLogs(filter);
|
|
80
77
|
}
|
|
@@ -99,5 +96,8 @@ export class BaseWallet {
|
|
|
99
96
|
isContractClassPubliclyRegistered(id) {
|
|
100
97
|
return this.pxe.isContractClassPubliclyRegistered(id);
|
|
101
98
|
}
|
|
99
|
+
isContractPubliclyDeployed(address) {
|
|
100
|
+
return this.pxe.isContractPubliclyDeployed(address);
|
|
101
|
+
}
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L2Jhc2Vfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCQTs7R0FFRztBQUNILE1BQU0sT0FBZ0IsVUFBVTtJQUM5QixZQUErQixHQUFRO1FBQVIsUUFBRyxHQUFILEdBQUcsQ0FBSztJQUFHLENBQUM7SUFrQjNDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE9BQU8sQ0FBQztJQUMzQyxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsT0FBcUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFNO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLE9BQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsZUFBZSxDQUFDLE9BQTJCLEVBQUUsY0FBOEI7UUFDekUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELGlCQUFpQixDQUFDLE9BQXdCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxPQUFxQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7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
|
|
@@ -7,6 +7,6 @@ import { BaseWallet } from './base_wallet.js';
|
|
|
7
7
|
export declare class SignerlessWallet extends BaseWallet {
|
|
8
8
|
createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
|
|
9
9
|
getCompleteAddress(): CompleteAddress;
|
|
10
|
-
|
|
10
|
+
createAuthWit(_message: Fr): Promise<AuthWitness>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=signerless_wallet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signerless_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/signerless_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,EAAE,EAAa,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IACxC,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoBvF,kBAAkB,IAAI,eAAe;IAIrC,
|
|
1
|
+
{"version":3,"file":"signerless_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/signerless_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,EAAE,EAAa,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IACxC,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoBvF,kBAAkB,IAAI,eAAe;IAIrC,aAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;CAGlD"}
|
|
@@ -18,8 +18,8 @@ export class SignerlessWallet extends BaseWallet {
|
|
|
18
18
|
getCompleteAddress() {
|
|
19
19
|
throw new Error('Method not implemented.');
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
createAuthWit(_message) {
|
|
22
22
|
throw new Error('Method not implemented.');
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVybGVzc193YWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L3NpZ25lcmxlc3Nfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkIsZUFBZSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEcsT0FBTyxFQUF1QixTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsVUFBVTtJQUM5QyxLQUFLLENBQUMsd0JBQXdCLENBQUMsVUFBMEI7UUFDdkQsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQy9CLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xFLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FDcEIsSUFBSSxrQkFBa0IsQ0FDcEIsU0FBUyxDQUFDLEVBQUUsRUFDWixTQUFTLENBQUMsWUFBWSxFQUN0QixlQUFlLENBQUMsSUFBSSxFQUNwQixTQUFTLEVBQ1QsQ0FBQyxlQUFlLENBQUMsRUFDakIsRUFBRSxDQUNILENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxhQUFhLENBQUMsUUFBWTtRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGIn0=
|
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.29.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./dest/index.js",
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
"rootDir": "./src"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@aztec/circuit-types": "0.
|
|
53
|
-
"@aztec/circuits.js": "0.
|
|
54
|
-
"@aztec/ethereum": "0.
|
|
55
|
-
"@aztec/foundation": "0.
|
|
56
|
-
"@aztec/protocol-contracts": "0.
|
|
57
|
-
"@aztec/types": "0.
|
|
52
|
+
"@aztec/circuit-types": "0.29.0",
|
|
53
|
+
"@aztec/circuits.js": "0.29.0",
|
|
54
|
+
"@aztec/ethereum": "0.29.0",
|
|
55
|
+
"@aztec/foundation": "0.29.0",
|
|
56
|
+
"@aztec/protocol-contracts": "0.29.0",
|
|
57
|
+
"@aztec/types": "0.29.0",
|
|
58
58
|
"tslib": "^2.4.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
package/src/account/interface.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { AuthWitness, CompleteAddress, FunctionCall, TxExecutionRequest } from '@aztec/circuit-types';
|
|
2
|
+
import { AztecAddress } from '@aztec/circuits.js';
|
|
2
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
4
|
|
|
5
|
+
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
4
6
|
import { FeePaymentMethod } from '../fee/fee_payment_method.js';
|
|
5
7
|
|
|
6
8
|
/**
|
|
@@ -17,10 +19,23 @@ export type FeeOptions = {
|
|
|
17
19
|
/** Creates authorization witnesses. */
|
|
18
20
|
export interface AuthWitnessProvider {
|
|
19
21
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
+
* Computes an authentication witness from either a message hash or an intent (caller and an action).
|
|
23
|
+
* If a message hash is provided, it will create a witness for that directly.
|
|
24
|
+
* Otherwise, it will compute the message hash using the caller and the action of the intent.
|
|
25
|
+
* @param messageHashOrIntent - The message hash or the intent (caller and action) to approve
|
|
26
|
+
* @returns The authentication witness
|
|
22
27
|
*/
|
|
23
|
-
|
|
28
|
+
createAuthWit(
|
|
29
|
+
messageHashOrIntent:
|
|
30
|
+
| Fr
|
|
31
|
+
| Buffer
|
|
32
|
+
| {
|
|
33
|
+
/** The caller to approve */
|
|
34
|
+
caller: AztecAddress;
|
|
35
|
+
/** The action to approve */
|
|
36
|
+
action: ContractFunctionInteraction | FunctionCall;
|
|
37
|
+
},
|
|
38
|
+
): Promise<AuthWitness>;
|
|
24
39
|
}
|
|
25
40
|
|
|
26
41
|
/** Creates transaction execution requests out of a set of function calls. */
|
|
@@ -39,9 +54,10 @@ export interface EntrypointInterface {
|
|
|
39
54
|
* requests and authorize actions for its corresponding account.
|
|
40
55
|
*/
|
|
41
56
|
export interface AccountInterface extends AuthWitnessProvider, EntrypointInterface {
|
|
42
|
-
/**
|
|
43
|
-
* Returns the complete address for this account.
|
|
44
|
-
*/
|
|
57
|
+
/** Returns the complete address for this account. */
|
|
45
58
|
getCompleteAddress(): CompleteAddress;
|
|
59
|
+
|
|
60
|
+
/** Returns the address for this account. */
|
|
61
|
+
getAddress(): AztecAddress;
|
|
46
62
|
}
|
|
47
63
|
// docs:end:account-interface
|
|
@@ -159,7 +159,7 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
|
|
|
159
159
|
|
|
160
160
|
// Deploy the contract via the instance deployer.
|
|
161
161
|
if (!options.skipPublicDeployment) {
|
|
162
|
-
calls.push(deployInstance(this.wallet, instance
|
|
162
|
+
calls.push(deployInstance(this.wallet, instance).request());
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
return calls;
|
|
@@ -192,6 +192,7 @@ export class DeployMethod<TContract extends ContractBase = Contract> extends Bas
|
|
|
192
192
|
portalAddress: options.portalContract,
|
|
193
193
|
publicKey: this.publicKey,
|
|
194
194
|
constructorArtifact: this.constructorArtifact,
|
|
195
|
+
deployer: options.universalDeploy ? AztecAddress.ZERO : this.wallet.getAddress(),
|
|
195
196
|
});
|
|
196
197
|
}
|
|
197
198
|
return this.instance;
|
|
@@ -8,21 +8,22 @@ import { getDeployerContract } from './protocol_contracts.js';
|
|
|
8
8
|
* Sets up a call to the canonical deployer contract to publicly deploy a contract instance.
|
|
9
9
|
* @param wallet - The wallet to use for the deployment.
|
|
10
10
|
* @param instance - The instance to deploy.
|
|
11
|
-
* @param opts - Additional options.
|
|
12
11
|
*/
|
|
13
|
-
export function deployInstance(
|
|
14
|
-
wallet
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
export function deployInstance(wallet: Wallet, instance: ContractInstanceWithAddress): ContractFunctionInteraction {
|
|
13
|
+
const deployerContract = getDeployerContract(wallet);
|
|
14
|
+
const { salt, contractClassId, portalContractAddress, publicKeysHash, deployer } = instance;
|
|
15
|
+
const isUniversalDeploy = deployer.isZero();
|
|
16
|
+
if (!isUniversalDeploy && !wallet.getAddress().equals(deployer)) {
|
|
17
|
+
throw new Error(
|
|
18
|
+
`Expected deployer ${deployer.toString()} does not match sender wallet ${wallet.getAddress().toString()}`,
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
return deployerContract.methods.deploy(
|
|
21
22
|
salt,
|
|
22
23
|
contractClassId,
|
|
23
24
|
instance.initializationHash,
|
|
24
25
|
portalContractAddress,
|
|
25
26
|
publicKeysHash,
|
|
26
|
-
|
|
27
|
+
isUniversalDeploy,
|
|
27
28
|
);
|
|
28
29
|
}
|
|
@@ -47,12 +47,12 @@ export class NativeFeePaymentMethod implements FeePaymentMethod {
|
|
|
47
47
|
return Promise.resolve([
|
|
48
48
|
{
|
|
49
49
|
to: NativeFeePaymentMethod.#GAS_TOKEN,
|
|
50
|
-
functionData: new FunctionData(FunctionSelector.fromSignature('check_balance(Field)'), false
|
|
50
|
+
functionData: new FunctionData(FunctionSelector.fromSignature('check_balance(Field)'), false),
|
|
51
51
|
args: [feeLimit],
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
to: NativeFeePaymentMethod.#GAS_TOKEN,
|
|
55
|
-
functionData: new FunctionData(FunctionSelector.fromSignature('pay_fee(Field)'), false
|
|
55
|
+
functionData: new FunctionData(FunctionSelector.fromSignature('pay_fee(Field)'), false),
|
|
56
56
|
args: [feeLimit],
|
|
57
57
|
},
|
|
58
58
|
]);
|
|
@@ -60,15 +60,10 @@ export class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
60
60
|
const nonce = Fr.random();
|
|
61
61
|
const messageHash = computeAuthWitMessageHash(this.paymentContract, {
|
|
62
62
|
args: [this.wallet.getCompleteAddress().address, this.paymentContract, maxFee, nonce],
|
|
63
|
-
functionData: new FunctionData(
|
|
64
|
-
FunctionSelector.fromSignature('unshield((Field),(Field),Field,Field)'),
|
|
65
|
-
false,
|
|
66
|
-
true,
|
|
67
|
-
false,
|
|
68
|
-
),
|
|
63
|
+
functionData: new FunctionData(FunctionSelector.fromSignature('unshield((Field),(Field),Field,Field)'), true),
|
|
69
64
|
to: this.asset,
|
|
70
65
|
});
|
|
71
|
-
await this.wallet.
|
|
66
|
+
await this.wallet.createAuthWit(messageHash);
|
|
72
67
|
|
|
73
68
|
const secretHashForRebate = computeMessageSecretHash(this.rebateSecret);
|
|
74
69
|
|
|
@@ -77,9 +72,7 @@ export class PrivateFeePaymentMethod implements FeePaymentMethod {
|
|
|
77
72
|
to: this.getPaymentContract(),
|
|
78
73
|
functionData: new FunctionData(
|
|
79
74
|
FunctionSelector.fromSignature('fee_entrypoint_private(Field,(Field),Field,Field)'),
|
|
80
|
-
false,
|
|
81
75
|
true,
|
|
82
|
-
false,
|
|
83
76
|
),
|
|
84
77
|
args: [maxFee, this.asset, secretHashForRebate, nonce],
|
|
85
78
|
},
|
|
@@ -56,21 +56,17 @@ export class PublicFeePaymentMethod implements FeePaymentMethod {
|
|
|
56
56
|
functionData: new FunctionData(
|
|
57
57
|
FunctionSelector.fromSignature('transfer_public((Field),(Field),Field,Field)'),
|
|
58
58
|
false,
|
|
59
|
-
false,
|
|
60
|
-
false,
|
|
61
59
|
),
|
|
62
60
|
to: this.asset,
|
|
63
61
|
});
|
|
64
62
|
|
|
65
63
|
return Promise.resolve([
|
|
66
|
-
this.wallet.
|
|
64
|
+
this.wallet.setPublicAuthWit(messageHash, true).request(),
|
|
67
65
|
{
|
|
68
66
|
to: this.getPaymentContract(),
|
|
69
67
|
functionData: new FunctionData(
|
|
70
68
|
FunctionSelector.fromSignature('fee_entrypoint_public(Field,(Field),Field)'),
|
|
71
|
-
false,
|
|
72
69
|
true,
|
|
73
|
-
false,
|
|
74
70
|
),
|
|
75
71
|
args: [maxFee, this.asset, nonce],
|
|
76
72
|
},
|
package/src/index.ts
CHANGED
|
@@ -41,7 +41,6 @@ export {
|
|
|
41
41
|
AztecAddressLike,
|
|
42
42
|
FunctionSelectorLike,
|
|
43
43
|
WrappedFieldLike,
|
|
44
|
-
isContractDeployed,
|
|
45
44
|
EthCheatCodes,
|
|
46
45
|
computeAuthWitMessageHash,
|
|
47
46
|
computeInnerAuthWitHash,
|
|
@@ -69,7 +68,7 @@ export {
|
|
|
69
68
|
GlobalVariables,
|
|
70
69
|
GrumpkinScalar,
|
|
71
70
|
Point,
|
|
72
|
-
getContractInstanceFromDeployParams,
|
|
71
|
+
getContractInstanceFromDeployParams, // TODO(@spalladino) This method should be used from within the DeployMethod but not exposed in aztec.js
|
|
73
72
|
getContractClassFromArtifact,
|
|
74
73
|
INITIAL_L2_BLOCK_NUM,
|
|
75
74
|
} from '@aztec/circuits.js';
|
|
@@ -83,9 +82,7 @@ export {
|
|
|
83
82
|
AztecNode,
|
|
84
83
|
Body,
|
|
85
84
|
CompleteAddress,
|
|
86
|
-
ContractData,
|
|
87
85
|
DeployedContract,
|
|
88
|
-
ExtendedContractData,
|
|
89
86
|
ExtendedNote,
|
|
90
87
|
FunctionCall,
|
|
91
88
|
GrumpkinPrivateKey,
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AuthWitness,
|
|
3
|
-
ContractData,
|
|
4
|
-
ExtendedContractData,
|
|
5
3
|
ExtendedNote,
|
|
6
4
|
ExtendedUnencryptedL2Log,
|
|
7
5
|
L2Block,
|
|
@@ -40,10 +38,8 @@ export const createPXEClient = (url: string, fetch = makeFetch([1, 2, 3], false)
|
|
|
40
38
|
AuthWitness,
|
|
41
39
|
AztecAddress,
|
|
42
40
|
CompleteAddress,
|
|
43
|
-
ContractData,
|
|
44
41
|
FunctionSelector,
|
|
45
42
|
EthAddress,
|
|
46
|
-
ExtendedContractData,
|
|
47
43
|
ExtendedNote,
|
|
48
44
|
ExtendedUnencryptedL2Log,
|
|
49
45
|
Fr,
|
package/src/utils/authwit.ts
CHANGED
|
@@ -12,16 +12,16 @@ import { pedersenHash } from '@aztec/foundation/crypto';
|
|
|
12
12
|
* `bob` then signs the message hash and gives it to `alice` who can then perform the
|
|
13
13
|
* action.
|
|
14
14
|
* @param caller - The caller approved to make the call
|
|
15
|
-
* @param
|
|
15
|
+
* @param action - The request to be made (function call)
|
|
16
16
|
* @returns The message hash for the witness
|
|
17
17
|
*/
|
|
18
|
-
export const computeAuthWitMessageHash = (caller: AztecAddress,
|
|
18
|
+
export const computeAuthWitMessageHash = (caller: AztecAddress, action: FunctionCall) => {
|
|
19
19
|
return computeOuterAuthWitHash(
|
|
20
|
-
|
|
20
|
+
action.to.toField(),
|
|
21
21
|
computeInnerAuthWitHash([
|
|
22
22
|
caller.toField(),
|
|
23
|
-
|
|
24
|
-
PackedArguments.fromArgs(
|
|
23
|
+
action.functionData.selector.toField(),
|
|
24
|
+
PackedArguments.fromArgs(action.args).hash,
|
|
25
25
|
]),
|
|
26
26
|
);
|
|
27
27
|
};
|
package/src/utils/index.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { AuthWitness, FunctionCall, PXE, TxExecutionRequest } from '@aztec/circuit-types';
|
|
2
|
-
import { Fr } from '@aztec/circuits.js';
|
|
2
|
+
import { AztecAddress, Fr } from '@aztec/circuits.js';
|
|
3
3
|
import { ABIParameterVisibility, FunctionAbi, FunctionType } from '@aztec/foundation/abi';
|
|
4
4
|
|
|
5
5
|
import { AccountInterface, FeeOptions } from '../account/interface.js';
|
|
6
6
|
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
7
|
+
import { computeAuthWitMessageHash } from '../utils/authwit.js';
|
|
7
8
|
import { BaseWallet } from './base_wallet.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -18,21 +19,76 @@ export class AccountWallet extends BaseWallet {
|
|
|
18
19
|
return this.account.createTxExecutionRequest(execs, fee);
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Computes an authentication witness from either a message or a caller and an action.
|
|
24
|
+
* If a message is provided, it will create a witness for the message directly.
|
|
25
|
+
* Otherwise, it will compute the message using the caller and the action.
|
|
26
|
+
* @param messageHashOrIntent - The message or the caller and action to approve
|
|
27
|
+
* @returns The authentication witness
|
|
28
|
+
*/
|
|
29
|
+
async createAuthWit(
|
|
30
|
+
messageHashOrIntent:
|
|
31
|
+
| Fr
|
|
32
|
+
| Buffer
|
|
33
|
+
| {
|
|
34
|
+
/** The caller to approve */
|
|
35
|
+
caller: AztecAddress;
|
|
36
|
+
/** The action to approve */
|
|
37
|
+
action: ContractFunctionInteraction | FunctionCall;
|
|
38
|
+
},
|
|
39
|
+
): Promise<AuthWitness> {
|
|
40
|
+
const messageHash = this.getMessageHash(messageHashOrIntent);
|
|
41
|
+
const witness = await this.account.createAuthWit(messageHash);
|
|
24
42
|
await this.pxe.addAuthWitness(witness);
|
|
25
43
|
return witness;
|
|
26
44
|
}
|
|
27
45
|
|
|
28
46
|
/**
|
|
29
|
-
* Returns
|
|
47
|
+
* Returns the message hash for the given message or authwit input.
|
|
48
|
+
* @param messageHashOrIntent - The message hash or the caller and action to authorize
|
|
49
|
+
* @returns The message hash
|
|
50
|
+
*/
|
|
51
|
+
private getMessageHash(
|
|
52
|
+
messageHashOrIntent:
|
|
53
|
+
| Fr
|
|
54
|
+
| Buffer
|
|
55
|
+
| {
|
|
56
|
+
/** The caller to approve */
|
|
57
|
+
caller: AztecAddress;
|
|
58
|
+
/** The action to approve */
|
|
59
|
+
action: ContractFunctionInteraction | FunctionCall;
|
|
60
|
+
},
|
|
61
|
+
): Fr {
|
|
62
|
+
if (Buffer.isBuffer(messageHashOrIntent)) {
|
|
63
|
+
return Fr.fromBuffer(messageHashOrIntent);
|
|
64
|
+
} else if (messageHashOrIntent instanceof Fr) {
|
|
65
|
+
return messageHashOrIntent;
|
|
66
|
+
} else if (messageHashOrIntent.action instanceof ContractFunctionInteraction) {
|
|
67
|
+
return computeAuthWitMessageHash(messageHashOrIntent.caller, messageHashOrIntent.action.request());
|
|
68
|
+
}
|
|
69
|
+
return computeAuthWitMessageHash(messageHashOrIntent.caller, messageHashOrIntent.action);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Returns a function interaction to set a message hash as authorized or revoked in this account.
|
|
30
74
|
* Public calls can then consume this authorization.
|
|
31
|
-
* @param
|
|
75
|
+
* @param messageHashOrIntent - The message or the caller and action to authorize/revoke
|
|
32
76
|
* @param authorized - True to authorize, false to revoke authorization.
|
|
33
77
|
* @returns - A function interaction.
|
|
34
78
|
*/
|
|
35
|
-
public
|
|
79
|
+
public setPublicAuthWit(
|
|
80
|
+
messageHashOrIntent:
|
|
81
|
+
| Fr
|
|
82
|
+
| Buffer
|
|
83
|
+
| {
|
|
84
|
+
/** The caller to approve */
|
|
85
|
+
caller: AztecAddress;
|
|
86
|
+
/** The action to approve */
|
|
87
|
+
action: ContractFunctionInteraction | FunctionCall;
|
|
88
|
+
},
|
|
89
|
+
authorized: boolean,
|
|
90
|
+
): ContractFunctionInteraction {
|
|
91
|
+
const message = this.getMessageHash(messageHashOrIntent);
|
|
36
92
|
if (authorized) {
|
|
37
93
|
return new ContractFunctionInteraction(this, this.getAddress(), this.getApprovePublicAuthwitAbi(), [message]);
|
|
38
94
|
} else {
|
|
@@ -42,10 +98,21 @@ export class AccountWallet extends BaseWallet {
|
|
|
42
98
|
|
|
43
99
|
/**
|
|
44
100
|
* Returns a function interaction to cancel a message hash as authorized in this account.
|
|
45
|
-
* @param
|
|
101
|
+
* @param messageHashOrIntent - The message or the caller and action to authorize/revoke
|
|
46
102
|
* @returns - A function interaction.
|
|
47
103
|
*/
|
|
48
|
-
public cancelAuthWit(
|
|
104
|
+
public cancelAuthWit(
|
|
105
|
+
messageHashOrIntent:
|
|
106
|
+
| Fr
|
|
107
|
+
| Buffer
|
|
108
|
+
| {
|
|
109
|
+
/** The caller to approve */
|
|
110
|
+
caller: AztecAddress;
|
|
111
|
+
/** The action to approve */
|
|
112
|
+
action: ContractFunctionInteraction | FunctionCall;
|
|
113
|
+
},
|
|
114
|
+
): ContractFunctionInteraction {
|
|
115
|
+
const message = this.getMessageHash(messageHashOrIntent);
|
|
49
116
|
const args = [message];
|
|
50
117
|
return new ContractFunctionInteraction(this, this.getAddress(), this.getCancelAuthwitAbi(), args);
|
|
51
118
|
}
|