@aztec/aztec.js 0.1.0-alpha59 → 0.1.0-alpha61
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/.tsbuildinfo +1 -1
- package/dest/abis/schnorr_auth_witness_account_contract.json +104 -0
- package/dest/account/contract/auth_witness_account_contract.d.ts +17 -0
- package/dest/account/contract/auth_witness_account_contract.d.ts.map +1 -0
- package/dest/account/contract/auth_witness_account_contract.js +23 -0
- package/dest/account/contract/index.d.ts +1 -0
- package/dest/account/contract/index.d.ts.map +1 -1
- package/dest/account/contract/index.js +2 -1
- package/dest/account/entrypoint/auth_witness_account_entrypoint.d.ts +51 -0
- package/dest/account/entrypoint/auth_witness_account_entrypoint.d.ts.map +1 -0
- package/dest/account/entrypoint/auth_witness_account_entrypoint.js +82 -0
- package/dest/account/entrypoint/index.d.ts +1 -0
- package/dest/account/entrypoint/index.d.ts.map +1 -1
- package/dest/account/entrypoint/index.js +2 -1
- package/dest/aztec_rpc_client/wallet.d.ts +32 -1
- package/dest/aztec_rpc_client/wallet.d.ts.map +1 -1
- package/dest/aztec_rpc_client/wallet.js +46 -2
- package/dest/main.js +1 -1
- package/package.json +4 -4
- package/src/abis/schnorr_auth_witness_account_contract.json +104 -0
- package/src/account/contract/auth_witness_account_contract.ts +35 -0
- package/src/account/contract/index.ts +1 -0
- package/src/account/entrypoint/auth_witness_account_entrypoint.ts +106 -0
- package/src/account/entrypoint/index.ts +1 -0
- package/src/aztec_rpc_client/wallet.ts +54 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CircuitsWasm, TxContext } from '@aztec/circuits.js';
|
|
1
|
+
import { CircuitsWasm, Fr, TxContext } from '@aztec/circuits.js';
|
|
2
2
|
import { PackedArguments, TxExecutionRequest, } from '@aztec/types';
|
|
3
3
|
/**
|
|
4
4
|
* A base class for Wallet implementations
|
|
@@ -70,6 +70,9 @@ export class BaseWallet {
|
|
|
70
70
|
getSyncStatus() {
|
|
71
71
|
return this.rpc.getSyncStatus();
|
|
72
72
|
}
|
|
73
|
+
addAuthWitness(messageHash, witness) {
|
|
74
|
+
return this.rpc.addAuthWitness(messageHash, witness);
|
|
75
|
+
}
|
|
73
76
|
}
|
|
74
77
|
/**
|
|
75
78
|
* A simple wallet implementation that forwards authentication requests to a provided entrypoint implementation.
|
|
@@ -83,6 +86,47 @@ export class EntrypointWallet extends BaseWallet {
|
|
|
83
86
|
return this.accountImpl.createTxExecutionRequest(executions, opts);
|
|
84
87
|
}
|
|
85
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* A wallet implementation supporting auth witnesses.
|
|
91
|
+
* This wallet inserts eip1271-like witnesses into the RPC, which are then fetched using an oracle
|
|
92
|
+
* to provide authentication data to the contract during execution.
|
|
93
|
+
*/
|
|
94
|
+
export class AuthWitnessEntrypointWallet extends BaseWallet {
|
|
95
|
+
constructor(rpc, accountImpl) {
|
|
96
|
+
super(rpc);
|
|
97
|
+
this.accountImpl = accountImpl;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create a transaction request and add the auth witness to the RPC.
|
|
101
|
+
* Note: When used in simulations, the witness that is inserted could be used later by attacker with
|
|
102
|
+
* access to the RPC.
|
|
103
|
+
* Meaning that if you were to use someone elses rpc with db you could send these transactions.
|
|
104
|
+
* For simulations it would be desirable to bypass such that no data is generated.
|
|
105
|
+
*
|
|
106
|
+
* @param executions - The function calls to execute.
|
|
107
|
+
* @param opts - The options.
|
|
108
|
+
* @returns - The TxRequest
|
|
109
|
+
*/
|
|
110
|
+
async createTxExecutionRequest(executions, opts = {}) {
|
|
111
|
+
const { txRequest, message, witness } = await this.accountImpl.createTxExecutionRequestWithWitness(executions, opts);
|
|
112
|
+
await this.rpc.addAuthWitness(Fr.fromBuffer(message), witness);
|
|
113
|
+
return txRequest;
|
|
114
|
+
}
|
|
115
|
+
sign(messageHash) {
|
|
116
|
+
return Promise.resolve(this.accountImpl.sign(messageHash));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Signs the `messageHash` and adds the witness to the RPC.
|
|
120
|
+
* This is useful for signing messages that are not directly part of the transaction payload, such as
|
|
121
|
+
* approvals .
|
|
122
|
+
* @param messageHash - The message hash to sign
|
|
123
|
+
*/
|
|
124
|
+
async signAndAddAuthWitness(messageHash) {
|
|
125
|
+
const witness = await this.accountImpl.createAuthWitness(messageHash);
|
|
126
|
+
await this.rpc.addAuthWitness(Fr.fromBuffer(messageHash), witness);
|
|
127
|
+
return Promise.resolve();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
86
130
|
/**
|
|
87
131
|
* A wallet implementation that forwards authentication requests to a provided account.
|
|
88
132
|
*/
|
|
@@ -113,4 +157,4 @@ export class SignerlessWallet extends BaseWallet {
|
|
|
113
157
|
return Promise.resolve(new TxExecutionRequest(execution.to, execution.functionData, packedArguments.hash, txContext, [packedArguments]));
|
|
114
158
|
}
|
|
115
159
|
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F6dGVjX3JwY19jbGllbnQvd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLEVBQUUsRUFBOEIsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0csT0FBTyxFQVFMLGVBQWUsRUFHZixrQkFBa0IsR0FHbkIsTUFBTSxjQUFjLENBQUM7QUFVdEI7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLFVBQVU7SUFDOUIsWUFBK0IsR0FBYTtRQUFiLFFBQUcsR0FBSCxHQUFHLENBQVU7SUFBRyxDQUFDO0lBSWhELGVBQWUsQ0FBQyxPQUFtQixFQUFFLGNBQThCO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxPQUF3QjtRQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxZQUFZLENBQUMsT0FBcUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsWUFBWSxDQUFDLFNBQTZCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FB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
|