@aztec/aztec.js 0.7.3 → 0.7.5
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/ecdsa_account_contract.json +530 -11
- package/dest/abis/schnorr_account_contract.json +530 -11
- package/dest/abis/schnorr_single_key_account_contract.json +523 -24
- package/dest/account/contract/base_account_contract.d.ts +17 -0
- package/dest/account/contract/base_account_contract.d.ts.map +1 -0
- package/dest/account/contract/base_account_contract.js +17 -0
- package/dest/account/contract/ecdsa_account_contract.d.ts +6 -7
- package/dest/account/contract/ecdsa_account_contract.d.ts.map +1 -1
- package/dest/account/contract/ecdsa_account_contract.js +18 -9
- package/dest/account/contract/index.d.ts +11 -8
- package/dest/account/contract/index.d.ts.map +1 -1
- package/dest/account/contract/index.js +2 -2
- package/dest/account/contract/schnorr_account_contract.d.ts +7 -8
- package/dest/account/contract/schnorr_account_contract.d.ts.map +1 -1
- package/dest/account/contract/schnorr_account_contract.js +17 -9
- package/dest/account/contract/single_key_account_contract.d.ts +6 -8
- package/dest/account/contract/single_key_account_contract.d.ts.map +1 -1
- package/dest/account/contract/single_key_account_contract.js +26 -7
- package/dest/account/defaults/default_entrypoint.d.ts +17 -0
- package/dest/account/defaults/default_entrypoint.d.ts.map +1 -0
- package/dest/account/defaults/default_entrypoint.js +90 -0
- package/dest/account/defaults/default_interface.d.ts +17 -0
- package/dest/account/defaults/default_interface.d.ts.map +1 -0
- package/dest/account/defaults/default_interface.js +22 -0
- package/dest/account/defaults/entrypoint_payload.d.ts.map +1 -0
- package/dest/account/defaults/entrypoint_payload.js +48 -0
- package/dest/account/defaults/index.d.ts +4 -0
- package/dest/account/defaults/index.d.ts.map +1 -0
- package/dest/account/defaults/index.js +4 -0
- package/dest/account/index.d.ts +8 -8
- package/dest/account/index.d.ts.map +1 -1
- package/dest/account/index.js +11 -12
- package/dest/account/interface.d.ts +31 -0
- package/dest/account/interface.d.ts.map +1 -0
- package/dest/account/interface.js +3 -0
- package/dest/account/{deploy_account_sent_tx.d.ts → manager/deploy_account_sent_tx.d.ts} +1 -1
- package/dest/account/manager/deploy_account_sent_tx.d.ts.map +1 -0
- package/dest/account/{deploy_account_sent_tx.js → manager/deploy_account_sent_tx.js} +2 -2
- package/dest/account/{account.d.ts → manager/index.d.ts} +7 -6
- package/dest/account/manager/index.d.ts.map +1 -0
- package/dest/account/{account.js → manager/index.js} +7 -7
- package/dest/{aztec_rpc_client/aztec_rpc_client.d.ts → aztec_rpc_client.d.ts} +1 -2
- package/dest/aztec_rpc_client.d.ts.map +1 -0
- package/dest/aztec_rpc_client.js +19 -0
- package/dest/contract/contract.d.ts +1 -1
- package/dest/contract/contract.d.ts.map +1 -1
- package/dest/contract/contract.js +1 -1
- package/dest/contract/contract.test.js +9 -3
- package/dest/contract/contract_base.d.ts +1 -1
- package/dest/contract/contract_base.d.ts.map +1 -1
- package/dest/contract/contract_function_interaction.d.ts +4 -4
- package/dest/contract/contract_function_interaction.d.ts.map +1 -1
- package/dest/contract/contract_function_interaction.js +1 -1
- package/dest/contract_deployer/deploy_method.d.ts.map +1 -1
- package/dest/contract_deployer/deploy_method.js +2 -1
- package/dest/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +3 -2
- package/dest/main.js +1 -1
- package/dest/sandbox/index.d.ts +70 -14
- package/dest/sandbox/index.d.ts.map +1 -1
- package/dest/utils/account.d.ts +1 -1
- package/dest/utils/account.d.ts.map +1 -1
- package/dest/utils/account.js +1 -1
- package/dest/wallet/account_wallet.d.ts +29 -0
- package/dest/wallet/account_wallet.d.ts.map +1 -0
- package/dest/wallet/account_wallet.js +61 -0
- package/dest/wallet/base_wallet.d.ts +38 -0
- package/dest/wallet/base_wallet.d.ts.map +1 -0
- package/dest/wallet/base_wallet.js +78 -0
- package/dest/wallet/index.d.ts +9 -0
- package/dest/wallet/index.d.ts.map +1 -0
- package/dest/wallet/index.js +4 -0
- package/dest/wallet/signerless_wallet.d.ts +13 -0
- package/dest/wallet/signerless_wallet.d.ts.map +1 -0
- package/dest/wallet/signerless_wallet.js +26 -0
- package/package.json +4 -4
- package/src/abis/ecdsa_account_contract.json +530 -11
- package/src/abis/schnorr_account_contract.json +530 -11
- package/src/abis/schnorr_single_key_account_contract.json +523 -24
- package/src/account/contract/base_account_contract.ts +25 -0
- package/src/account/contract/ecdsa_account_contract.ts +21 -12
- package/src/account/contract/index.ts +13 -8
- package/src/account/contract/schnorr_account_contract.ts +20 -12
- package/src/account/contract/single_key_account_contract.ts +28 -12
- package/src/account/defaults/default_entrypoint.ts +95 -0
- package/src/account/defaults/default_interface.ts +36 -0
- package/src/account/defaults/index.ts +3 -0
- package/src/account/index.ts +14 -14
- package/src/account/interface.ts +35 -0
- package/src/account/{deploy_account_sent_tx.ts → manager/deploy_account_sent_tx.ts} +1 -1
- package/src/account/{account.ts → manager/index.ts} +8 -7
- package/src/{aztec_rpc_client/aztec_rpc_client.ts → aztec_rpc_client.ts} +4 -2
- package/src/contract/contract.test.ts +9 -3
- package/src/contract/contract.ts +1 -1
- package/src/contract/contract_base.ts +1 -1
- package/src/contract/contract_function_interaction.ts +3 -3
- package/src/contract_deployer/deploy_method.ts +1 -0
- package/src/index.ts +2 -1
- package/src/utils/account.ts +1 -1
- package/src/wallet/account_wallet.ts +70 -0
- package/src/wallet/base_wallet.ts +103 -0
- package/src/wallet/index.ts +10 -0
- package/src/wallet/signerless_wallet.ts +39 -0
- package/dest/abis/schnorr_auth_witness_account_contract.json +0 -643
- package/dest/account/account.d.ts.map +0 -1
- package/dest/account/contract/auth_witness_account_contract.d.ts +0 -17
- package/dest/account/contract/auth_witness_account_contract.d.ts.map +0 -1
- package/dest/account/contract/auth_witness_account_contract.js +0 -23
- package/dest/account/deploy_account_sent_tx.d.ts.map +0 -1
- package/dest/account/entrypoint/auth_witness_account_entrypoint.d.ts +0 -74
- package/dest/account/entrypoint/auth_witness_account_entrypoint.d.ts.map +0 -1
- package/dest/account/entrypoint/auth_witness_account_entrypoint.js +0 -68
- package/dest/account/entrypoint/entrypoint_payload.d.ts.map +0 -1
- package/dest/account/entrypoint/entrypoint_payload.js +0 -48
- package/dest/account/entrypoint/entrypoint_utils.d.ts +0 -14
- package/dest/account/entrypoint/entrypoint_utils.d.ts.map +0 -1
- package/dest/account/entrypoint/entrypoint_utils.js +0 -24
- package/dest/account/entrypoint/index.d.ts +0 -20
- package/dest/account/entrypoint/index.d.ts.map +0 -1
- package/dest/account/entrypoint/index.js +0 -7
- package/dest/account/entrypoint/single_key_account_entrypoint.d.ts +0 -19
- package/dest/account/entrypoint/single_key_account_entrypoint.d.ts.map +0 -1
- package/dest/account/entrypoint/single_key_account_entrypoint.js +0 -50
- package/dest/account/entrypoint/stored_key_account_entrypoint.d.ts +0 -20
- package/dest/account/entrypoint/stored_key_account_entrypoint.d.ts.map +0 -1
- package/dest/account/entrypoint/stored_key_account_entrypoint.js +0 -47
- package/dest/aztec_rpc_client/aztec_rpc_client.d.ts.map +0 -1
- package/dest/aztec_rpc_client/aztec_rpc_client.js +0 -18
- package/dest/aztec_rpc_client/index.d.ts +0 -3
- package/dest/aztec_rpc_client/index.d.ts.map +0 -1
- package/dest/aztec_rpc_client/index.js +0 -3
- package/dest/aztec_rpc_client/wallet.d.ts +0 -109
- package/dest/aztec_rpc_client/wallet.d.ts.map +0 -1
- package/dest/aztec_rpc_client/wallet.js +0 -186
- package/src/abis/schnorr_auth_witness_account_contract.json +0 -643
- package/src/account/contract/auth_witness_account_contract.ts +0 -35
- package/src/account/entrypoint/auth_witness_account_entrypoint.ts +0 -125
- package/src/account/entrypoint/entrypoint_utils.ts +0 -31
- package/src/account/entrypoint/index.ts +0 -23
- package/src/account/entrypoint/single_key_account_entrypoint.ts +0 -55
- package/src/account/entrypoint/stored_key_account_entrypoint.ts +0 -56
- package/src/aztec_rpc_client/index.ts +0 -2
- package/src/aztec_rpc_client/wallet.ts +0 -219
- /package/dest/account/{entrypoint → defaults}/entrypoint_payload.d.ts +0 -0
- /package/src/account/{entrypoint → defaults}/entrypoint_payload.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/account/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAwC,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAoB,YAAY,EAAE,QAAQ,EAAqB,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE/D;;;GAGG;AACH,qBAAa,OAAO;IAShB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,eAAe;IAVzB,gDAAgD;IAChD,SAAgB,IAAI,CAAC,EAAE,EAAE,CAAC;IAE1B,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,mBAAmB,CAAC,CAAY;IACxC,OAAO,CAAC,YAAY,CAAC,CAAe;gBAG1B,GAAG,EAAE,QAAQ,EACb,oBAAoB,EAAE,kBAAkB,EACxC,eAAe,EAAE,eAAe,EACxC,aAAa,CAAC,EAAE,IAAI,GAAG,eAAe;cASxB,sBAAsB;IAOtC;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAMjD;;;;OAIG;IACU,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAc3D;;;;OAIG;IACU,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IAKhD;;;;;OAKG;IACU,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IAM/C;;;;;OAKG;IACU,eAAe;IAY5B;;;;;;;OAOG;IACU,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAOnD;;;;;;;;OAQG;IACU,UAAU,CAAC,IAAI,GAAE,QAAa,GAAG,OAAO,CAAC,aAAa,CAAC;CAIrE"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ContractAbi } from '@aztec/foundation/abi';
|
|
2
|
-
import { CompleteAddress, GrumpkinPrivateKey, NodeInfo } from '@aztec/types';
|
|
3
|
-
import { AuthWitnessAccountEntrypoint } from '../entrypoint/auth_witness_account_entrypoint.js';
|
|
4
|
-
import { AccountContract } from './index.js';
|
|
5
|
-
/**
|
|
6
|
-
* Account contract that authenticates transactions using Schnorr signatures verified against
|
|
7
|
-
* the note encryption key, relying on a single private key for both encryption and authentication.
|
|
8
|
-
* Extended to pull verification data from the oracle instead of passed as arguments.
|
|
9
|
-
*/
|
|
10
|
-
export declare class AuthWitnessAccountContract implements AccountContract {
|
|
11
|
-
private encryptionPrivateKey;
|
|
12
|
-
constructor(encryptionPrivateKey: GrumpkinPrivateKey);
|
|
13
|
-
getDeploymentArgs(): Promise<never[]>;
|
|
14
|
-
getEntrypoint({ address, partialAddress }: CompleteAddress, { chainId, version }: NodeInfo): Promise<AuthWitnessAccountEntrypoint>;
|
|
15
|
-
getContractAbi(): ContractAbi;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=auth_witness_account_contract.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth_witness_account_contract.d.ts","sourceRoot":"","sources":["../../../src/account/contract/auth_witness_account_contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,kDAAkD,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,eAAe;IACpD,OAAO,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,kBAAkB;IAErD,iBAAiB;IAIX,aAAa,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ;IAWhG,cAAc,IAAI,WAAW;CAGrC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Schnorr } from '@aztec/circuits.js/barretenberg';
|
|
2
|
-
import AuthWitnessAccountContractAbi from '../../abis/schnorr_auth_witness_account_contract.json' assert { type: 'json' };
|
|
3
|
-
import { AuthWitnessAccountEntrypoint } from '../entrypoint/auth_witness_account_entrypoint.js';
|
|
4
|
-
/**
|
|
5
|
-
* Account contract that authenticates transactions using Schnorr signatures verified against
|
|
6
|
-
* the note encryption key, relying on a single private key for both encryption and authentication.
|
|
7
|
-
* Extended to pull verification data from the oracle instead of passed as arguments.
|
|
8
|
-
*/
|
|
9
|
-
export class AuthWitnessAccountContract {
|
|
10
|
-
constructor(encryptionPrivateKey) {
|
|
11
|
-
this.encryptionPrivateKey = encryptionPrivateKey;
|
|
12
|
-
}
|
|
13
|
-
getDeploymentArgs() {
|
|
14
|
-
return Promise.resolve([]);
|
|
15
|
-
}
|
|
16
|
-
async getEntrypoint({ address, partialAddress }, { chainId, version }) {
|
|
17
|
-
return new AuthWitnessAccountEntrypoint(address, partialAddress, this.encryptionPrivateKey, await Schnorr.new(), chainId, version);
|
|
18
|
-
}
|
|
19
|
-
getContractAbi() {
|
|
20
|
-
return AuthWitnessAccountContractAbi;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aF93aXRuZXNzX2FjY291bnRfY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWNjb3VudC9jb250cmFjdC9hdXRoX3dpdG5lc3NfYWNjb3VudF9jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJMUQsT0FBTyw2QkFBNkIsTUFBTSx1REFBdUQsQ0FBQyxTQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUdoRzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixvQkFBd0M7UUFBeEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFvQjtJQUFHLENBQUM7SUFFekQsaUJBQWlCO1FBQ3RCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFZO1FBQ3JHLE9BQU8sSUFBSSw0QkFBNEIsQ0FDckMsT0FBTyxFQUNQLGNBQWMsRUFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQ3pCLE1BQU0sT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUNuQixPQUFPLEVBQ1AsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLDZCQUF1RCxDQUFDO0lBQ2pFLENBQUM7Q0FDRiJ9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_account_sent_tx.d.ts","sourceRoot":"","sources":["../../src/account/deploy_account_sent_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvD,4FAA4F;AAC5F,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG;IACzD,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,MAAM;IACjC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;IAIlE;;;;OAIG;IACU,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD;;;;OAIG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAIpE"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { AztecAddress, Fr, GrumpkinPrivateKey, PartialAddress } from '@aztec/circuits.js';
|
|
3
|
-
import { Schnorr } from '@aztec/circuits.js/barretenberg';
|
|
4
|
-
import { FunctionCall, TxExecutionRequest } from '@aztec/types';
|
|
5
|
-
import { Entrypoint } from './index.js';
|
|
6
|
-
/**
|
|
7
|
-
* An extended interface for entrypoints that support signing and adding auth witnesses.
|
|
8
|
-
*/
|
|
9
|
-
export interface IAuthWitnessAccountEntrypoint extends Entrypoint {
|
|
10
|
-
/**
|
|
11
|
-
* Sign a message hash with the private key.
|
|
12
|
-
* @param message - The message hash to sign.
|
|
13
|
-
* @returns The signature as a Buffer.
|
|
14
|
-
*/
|
|
15
|
-
sign(message: Buffer): Buffer;
|
|
16
|
-
/**
|
|
17
|
-
* Creates an AuthWitness witness for the given message. In this case, witness is the public key, the signature
|
|
18
|
-
* and the partial address, to be used for verification.
|
|
19
|
-
* @param message - The message hash to sign.
|
|
20
|
-
* @param opts - Options.
|
|
21
|
-
* @returns [publicKey, signature, partialAddress] as Fr[].
|
|
22
|
-
*/
|
|
23
|
-
createAuthWitness(message: Buffer): Promise<Fr[]>;
|
|
24
|
-
/**
|
|
25
|
-
* Returns the transaction request and the auth witness for the given function calls.
|
|
26
|
-
* Returning the witness here as a nonce is generated in the buildPayload action.
|
|
27
|
-
* @param executions - The function calls to execute
|
|
28
|
-
* @param opts - The options
|
|
29
|
-
* @returns The TxRequest, the auth witness to insert in db and the message signed
|
|
30
|
-
*/
|
|
31
|
-
createTxExecutionRequestWithWitness(executions: FunctionCall[]): Promise<{
|
|
32
|
-
/** The transaction request */
|
|
33
|
-
txRequest: TxExecutionRequest;
|
|
34
|
-
/** The auth witness */
|
|
35
|
-
witness: Fr[];
|
|
36
|
-
/** The message signed */
|
|
37
|
-
message: Buffer;
|
|
38
|
-
}>;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Account contract implementation that uses a single key for signing and encryption. This public key is not
|
|
42
|
-
* stored in the contract, but rather verified against the contract address. Note that this approach is not
|
|
43
|
-
* secure and should not be used in real use cases.
|
|
44
|
-
* The entrypoint is extended to support signing and creating eip1271-like witnesses.
|
|
45
|
-
*/
|
|
46
|
-
export declare class AuthWitnessAccountEntrypoint implements IAuthWitnessAccountEntrypoint {
|
|
47
|
-
private address;
|
|
48
|
-
private partialAddress;
|
|
49
|
-
private privateKey;
|
|
50
|
-
private signer;
|
|
51
|
-
private chainId;
|
|
52
|
-
private version;
|
|
53
|
-
constructor(address: AztecAddress, partialAddress: PartialAddress, privateKey: GrumpkinPrivateKey, signer: Schnorr, chainId?: number, version?: number);
|
|
54
|
-
sign(message: Buffer): Buffer;
|
|
55
|
-
createAuthWitness(message: Buffer): Promise<Fr[]>;
|
|
56
|
-
/**
|
|
57
|
-
* Returns the transaction request and the auth witness for the given function calls.
|
|
58
|
-
* Returning the witness here as a nonce is generated in the buildPayload action.
|
|
59
|
-
* @param executions - The function calls to execute
|
|
60
|
-
* @param opts - The options
|
|
61
|
-
* @returns The TxRequest, the auth witness to insert in db and the message signed
|
|
62
|
-
*/
|
|
63
|
-
createTxExecutionRequestWithWitness(executions: FunctionCall[]): Promise<{
|
|
64
|
-
/** The transaction request */
|
|
65
|
-
txRequest: TxExecutionRequest;
|
|
66
|
-
/** The auth witness */
|
|
67
|
-
witness: Fr[];
|
|
68
|
-
/** The message signed */
|
|
69
|
-
message: Buffer;
|
|
70
|
-
}>;
|
|
71
|
-
createTxExecutionRequest(_executions: FunctionCall[]): Promise<TxExecutionRequest>;
|
|
72
|
-
private getEntrypointAbi;
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=auth_witness_account_entrypoint.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth_witness_account_entrypoint.d.ts","sourceRoot":"","sources":["../../../src/account/entrypoint/auth_witness_account_entrypoint.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,kBAAkB,EAAE,cAAc,EAAa,MAAM,oBAAoB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAMjF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,6BAA8B,SAAQ,UAAU;IAC/D;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9B;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAElD;;;;;;OAMG;IACH,mCAAmC,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;QACvE,8BAA8B;QAC9B,SAAS,EAAE,kBAAkB,CAAC;QAC9B,uBAAuB;QACvB,OAAO,EAAE,EAAE,EAAE,CAAC;QACd,yBAAyB;QACzB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,qBAAa,4BAA6B,YAAW,6BAA6B;IAE9E,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBALP,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,MAAyB,EAClC,OAAO,GAAE,MAAwB;IAGpC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI9B,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAYvD;;;;;;OAMG;IACG,mCAAmC,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;QAC7E,8BAA8B;QAC9B,SAAS,EAAE,kBAAkB,CAAC;QAC9B,uBAAuB;QACvB,OAAO,EAAE,EAAE,EAAE,CAAC;QACd,yBAAyB;QACzB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAmBF,wBAAwB,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIlF,OAAO,CAAC,gBAAgB;CAOzB"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { Fr, FunctionData, TxContext } from '@aztec/circuits.js';
|
|
2
|
-
import { encodeArguments } from '@aztec/foundation/abi';
|
|
3
|
-
import { PackedArguments, TxExecutionRequest } from '@aztec/types';
|
|
4
|
-
import SchnorrAuthWitnessAccountContractAbi from '../../abis/schnorr_auth_witness_account_contract.json' assert { type: 'json' };
|
|
5
|
-
import { generatePublicKey } from '../../index.js';
|
|
6
|
-
import { DEFAULT_CHAIN_ID, DEFAULT_VERSION } from '../../utils/defaults.js';
|
|
7
|
-
import { buildPayload, hashPayload } from './entrypoint_payload.js';
|
|
8
|
-
/**
|
|
9
|
-
* Account contract implementation that uses a single key for signing and encryption. This public key is not
|
|
10
|
-
* stored in the contract, but rather verified against the contract address. Note that this approach is not
|
|
11
|
-
* secure and should not be used in real use cases.
|
|
12
|
-
* The entrypoint is extended to support signing and creating eip1271-like witnesses.
|
|
13
|
-
*/
|
|
14
|
-
export class AuthWitnessAccountEntrypoint {
|
|
15
|
-
constructor(address, partialAddress, privateKey, signer, chainId = DEFAULT_CHAIN_ID, version = DEFAULT_VERSION) {
|
|
16
|
-
this.address = address;
|
|
17
|
-
this.partialAddress = partialAddress;
|
|
18
|
-
this.privateKey = privateKey;
|
|
19
|
-
this.signer = signer;
|
|
20
|
-
this.chainId = chainId;
|
|
21
|
-
this.version = version;
|
|
22
|
-
}
|
|
23
|
-
sign(message) {
|
|
24
|
-
return this.signer.constructSignature(message, this.privateKey).toBuffer();
|
|
25
|
-
}
|
|
26
|
-
async createAuthWitness(message) {
|
|
27
|
-
const signature = this.sign(message);
|
|
28
|
-
const publicKey = await generatePublicKey(this.privateKey);
|
|
29
|
-
const sigFr = [];
|
|
30
|
-
for (let i = 0; i < 64; i++) {
|
|
31
|
-
sigFr.push(new Fr(signature[i]));
|
|
32
|
-
}
|
|
33
|
-
return [...publicKey.toFields(), ...sigFr, this.partialAddress];
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Returns the transaction request and the auth witness for the given function calls.
|
|
37
|
-
* Returning the witness here as a nonce is generated in the buildPayload action.
|
|
38
|
-
* @param executions - The function calls to execute
|
|
39
|
-
* @param opts - The options
|
|
40
|
-
* @returns The TxRequest, the auth witness to insert in db and the message signed
|
|
41
|
-
*/
|
|
42
|
-
async createTxExecutionRequestWithWitness(executions) {
|
|
43
|
-
const { payload, packedArguments: callsPackedArguments } = await buildPayload(executions);
|
|
44
|
-
const message = await hashPayload(payload);
|
|
45
|
-
const witness = await this.createAuthWitness(message);
|
|
46
|
-
const args = [payload];
|
|
47
|
-
const abi = this.getEntrypointAbi();
|
|
48
|
-
const packedArgs = await PackedArguments.fromArgs(encodeArguments(abi, args));
|
|
49
|
-
const txRequest = TxExecutionRequest.from({
|
|
50
|
-
argsHash: packedArgs.hash,
|
|
51
|
-
origin: this.address,
|
|
52
|
-
functionData: FunctionData.fromAbi(abi),
|
|
53
|
-
txContext: TxContext.empty(this.chainId, this.version),
|
|
54
|
-
packedArguments: [...callsPackedArguments, packedArgs],
|
|
55
|
-
});
|
|
56
|
-
return { txRequest, message, witness };
|
|
57
|
-
}
|
|
58
|
-
createTxExecutionRequest(_executions) {
|
|
59
|
-
throw new Error(`Not implemented, use createTxExecutionRequestWithWitness instead`);
|
|
60
|
-
}
|
|
61
|
-
getEntrypointAbi() {
|
|
62
|
-
const abi = SchnorrAuthWitnessAccountContractAbi.functions.find(f => f.name === 'entrypoint');
|
|
63
|
-
if (!abi)
|
|
64
|
-
throw new Error(`Entrypoint abi for account contract not found`);
|
|
65
|
-
return abi;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aF93aXRuZXNzX2FjY291bnRfZW50cnlwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hY2NvdW50L2VudHJ5cG9pbnQvYXV0aF93aXRuZXNzX2FjY291bnRfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLEVBQUUsRUFBRSxZQUFZLEVBQXNDLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5ILE9BQU8sRUFBNEIsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFnQixlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakYsT0FBTyxvQ0FBb0MsTUFBTSx1REFBdUQsQ0FBQyxTQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQXdDcEU7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLFlBQ1UsT0FBcUIsRUFDckIsY0FBOEIsRUFDOUIsVUFBOEIsRUFDOUIsTUFBZSxFQUNmLFVBQWtCLGdCQUFnQixFQUNsQyxVQUFrQixlQUFlO1FBTGpDLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtJQUN4QyxDQUFDO0lBRUcsSUFBSSxDQUFDLE9BQWU7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0UsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFlO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsTUFBTSxTQUFTLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0QsTUFBTSxLQUFLLEdBQVMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xDO1FBRUQsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLFVBQTBCO1FBUWxFLE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFVBQVUsR0FBRyxNQUFNLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUN4QyxRQUFRLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLFlBQVksRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUN2QyxTQUFTLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDdEQsZUFBZSxFQUFFLENBQUMsR0FBRyxvQkFBb0IsRUFBRSxVQUFVLENBQUM7U0FDdkQsQ0FBQyxDQUFDO1FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELHdCQUF3QixDQUFDLFdBQTJCO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sR0FBRyxHQUFJLG9DQUEyRCxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3JGLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQzdCLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUMzRSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRiJ9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint_payload.d.ts","sourceRoot":"","sources":["../../../src/account/entrypoint/entrypoint_payload.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,EAAE,EAAkB,MAAM,oBAAoB,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,cAAc,CAAC;AAKhF,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,0DAA0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG;IAE9B,4CAA4C;IAC5C,qBAAqB,EAAE,EAAE,EAAE,CAAC;IAE5B,4CAA4C;IAC5C,mBAAmB,EAAE,EAAE,EAAE,CAAC;IAE1B,mDAAmD;IACnD,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACxB,oCAAoC;IACpC,KAAK,EAAE,EAAE,CAAC;CACX,CAAC;AAEF,sFAAsF;AACtF,wBAAsB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjE,8CAA8C;IAC9C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,+CAA+C;IAC/C,eAAe,EAAE,eAAe,EAAE,CAAC;CACpC,CAAC,CA6BD;AAED,gFAAgF;AAChF,wBAAsB,WAAW,CAAC,OAAO,EAAE,iBAAiB,mBAM3D;AAED,qCAAqC;AACrC,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,QAOxD"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { CircuitsWasm, Fr, GeneratorIndex } from '@aztec/circuits.js';
|
|
2
|
-
import { pedersenPlookupCompressWithHashIndex } from '@aztec/circuits.js/barretenberg';
|
|
3
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
-
import { PackedArguments, emptyFunctionCall } from '@aztec/types';
|
|
5
|
-
import partition from 'lodash.partition';
|
|
6
|
-
// These must match the values defined in yarn-project/aztec-nr/aztec/src/entrypoint.nr
|
|
7
|
-
export const ACCOUNT_MAX_PRIVATE_CALLS = 2;
|
|
8
|
-
export const ACCOUNT_MAX_PUBLIC_CALLS = 2;
|
|
9
|
-
/** Assembles an entrypoint payload from a set of private and public function calls */
|
|
10
|
-
export async function buildPayload(calls) {
|
|
11
|
-
const nonce = Fr.random();
|
|
12
|
-
const [privateCalls, publicCalls] = partition(calls, call => call.functionData.isPrivate);
|
|
13
|
-
const paddedCalls = [
|
|
14
|
-
...padArrayEnd(privateCalls, emptyFunctionCall(), ACCOUNT_MAX_PRIVATE_CALLS),
|
|
15
|
-
...padArrayEnd(publicCalls, emptyFunctionCall(), ACCOUNT_MAX_PUBLIC_CALLS),
|
|
16
|
-
];
|
|
17
|
-
const packedArguments = [];
|
|
18
|
-
const wasm = await CircuitsWasm.get();
|
|
19
|
-
for (const call of paddedCalls) {
|
|
20
|
-
packedArguments.push(await PackedArguments.fromArgs(call.args, wasm));
|
|
21
|
-
}
|
|
22
|
-
return {
|
|
23
|
-
payload: {
|
|
24
|
-
// eslint-disable-next-line camelcase
|
|
25
|
-
flattened_args_hashes: packedArguments.map(args => args.hash),
|
|
26
|
-
// eslint-disable-next-line camelcase
|
|
27
|
-
flattened_selectors: paddedCalls.map(call => call.functionData.selector.toField()),
|
|
28
|
-
// eslint-disable-next-line camelcase
|
|
29
|
-
flattened_targets: paddedCalls.map(call => call.to.toField()),
|
|
30
|
-
nonce,
|
|
31
|
-
},
|
|
32
|
-
packedArguments,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
/** Compresses an entrypoint payload to a 32-byte buffer (useful for signing) */
|
|
36
|
-
export async function hashPayload(payload) {
|
|
37
|
-
return pedersenPlookupCompressWithHashIndex(await CircuitsWasm.get(), flattenPayload(payload).map(fr => fr.toBuffer()), GeneratorIndex.SIGNATURE_PAYLOAD);
|
|
38
|
-
}
|
|
39
|
-
/** Flattens an entrypoint payload */
|
|
40
|
-
export function flattenPayload(payload) {
|
|
41
|
-
return [
|
|
42
|
-
...payload.flattened_args_hashes,
|
|
43
|
-
...payload.flattened_selectors,
|
|
44
|
-
...payload.flattened_targets,
|
|
45
|
-
payload.nonce,
|
|
46
|
-
];
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlwb2ludF9wYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FjY291bnQvZW50cnlwb2ludC9lbnRyeXBvaW50X3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhGLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBRXpDLHVGQUF1RjtBQUN2RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBaUIxQyxzRkFBc0Y7QUFDdEYsTUFBTSxDQUFDLEtBQUssVUFBVSxZQUFZLENBQUMsS0FBcUI7SUFNdEQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRTFCLE1BQU0sQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFMUYsTUFBTSxXQUFXLEdBQUc7UUFDbEIsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEVBQUUseUJBQXlCLENBQUM7UUFDNUUsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsd0JBQXdCLENBQUM7S0FDM0UsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUMzQixNQUFNLElBQUksR0FBRyxNQUFNLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUV0QyxLQUFLLE1BQU0sSUFBSSxJQUFJLFdBQVcsRUFBRTtRQUM5QixlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDdkU7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFO1lBQ1AscUNBQXFDO1lBQ3JDLHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdELHFDQUFxQztZQUNyQyxtQkFBbUIsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEYscUNBQXFDO1lBQ3JDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdELEtBQUs7U0FDTjtRQUNELGVBQWU7S0FDaEIsQ0FBQztBQUNKLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsT0FBMEI7SUFDMUQsT0FBTyxvQ0FBb0MsQ0FDekMsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLEVBQ3hCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDaEQsY0FBYyxDQUFDLGlCQUFpQixDQUNqQyxDQUFDO0FBQ0osQ0FBQztBQUVELHFDQUFxQztBQUNyQyxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQTBCO0lBQ3ZELE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxxQkFBcUI7UUFDaEMsR0FBRyxPQUFPLENBQUMsbUJBQW1CO1FBQzlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQjtRQUM1QixPQUFPLENBQUMsS0FBSztLQUNkLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { AztecAddress } from '@aztec/circuits.js';
|
|
2
|
-
import { FunctionAbi } from '@aztec/foundation/abi';
|
|
3
|
-
import { NodeInfo, PackedArguments, TxExecutionRequest } from '@aztec/types';
|
|
4
|
-
/**
|
|
5
|
-
* Utility for building a TxExecutionRequest in the context of an Entrypoint.
|
|
6
|
-
* @param origin - Address of the account contract sending this transaction.
|
|
7
|
-
* @param entrypointMethod - Initial method called in the account contract.
|
|
8
|
-
* @param args - Arguments used when calling this initial method.
|
|
9
|
-
* @param callsPackedArguments - Packed arguments of nested calls (if any).
|
|
10
|
-
* @param nodeInfo - Node info with chain id and version.
|
|
11
|
-
* @returns A TxExecutionRequest ready to be simulated, proven, and sent.
|
|
12
|
-
*/
|
|
13
|
-
export declare function buildTxExecutionRequest(origin: AztecAddress, entrypointMethod: FunctionAbi, args: any[], callsPackedArguments: PackedArguments[], nodeInfo: NodeInfo): Promise<TxExecutionRequest>;
|
|
14
|
-
//# sourceMappingURL=entrypoint_utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint_utils.d.ts","sourceRoot":"","sources":["../../../src/account/entrypoint/entrypoint_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2B,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAmB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE7E;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,WAAW,EAC7B,IAAI,EAAE,GAAG,EAAE,EACX,oBAAoB,EAAE,eAAe,EAAE,EACvC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAW7B"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { FunctionData, TxContext } from '@aztec/circuits.js';
|
|
2
|
-
import { encodeArguments } from '@aztec/foundation/abi';
|
|
3
|
-
import { PackedArguments, TxExecutionRequest } from '@aztec/types';
|
|
4
|
-
/**
|
|
5
|
-
* Utility for building a TxExecutionRequest in the context of an Entrypoint.
|
|
6
|
-
* @param origin - Address of the account contract sending this transaction.
|
|
7
|
-
* @param entrypointMethod - Initial method called in the account contract.
|
|
8
|
-
* @param args - Arguments used when calling this initial method.
|
|
9
|
-
* @param callsPackedArguments - Packed arguments of nested calls (if any).
|
|
10
|
-
* @param nodeInfo - Node info with chain id and version.
|
|
11
|
-
* @returns A TxExecutionRequest ready to be simulated, proven, and sent.
|
|
12
|
-
*/
|
|
13
|
-
export async function buildTxExecutionRequest(origin, entrypointMethod, args, callsPackedArguments, nodeInfo) {
|
|
14
|
-
const packedArgs = await PackedArguments.fromArgs(encodeArguments(entrypointMethod, args));
|
|
15
|
-
const { chainId, version } = nodeInfo;
|
|
16
|
-
return TxExecutionRequest.from({
|
|
17
|
-
argsHash: packedArgs.hash,
|
|
18
|
-
origin,
|
|
19
|
-
functionData: FunctionData.fromAbi(entrypointMethod),
|
|
20
|
-
txContext: TxContext.empty(chainId, version),
|
|
21
|
-
packedArguments: [...callsPackedArguments, packedArgs],
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlwb2ludF91dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hY2NvdW50L2VudHJ5cG9pbnQvZW50cnlwb2ludF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFZLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsdUJBQXVCLENBQzNDLE1BQW9CLEVBQ3BCLGdCQUE2QixFQUM3QixJQUFXLEVBQ1gsb0JBQXVDLEVBQ3ZDLFFBQWtCO0lBRWxCLE1BQU0sVUFBVSxHQUFHLE1BQU0sZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRixNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUV0QyxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUM3QixRQUFRLEVBQUUsVUFBVSxDQUFDLElBQUk7UUFDekIsTUFBTTtRQUNOLFlBQVksRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBQ3BELFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDNUMsZUFBZSxFQUFFLENBQUMsR0FBRyxvQkFBb0IsRUFBRSxVQUFVLENBQUM7S0FDdkQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { FunctionCall, TxExecutionRequest } from '@aztec/types';
|
|
2
|
-
export * from './auth_witness_account_entrypoint.js';
|
|
3
|
-
export * from './entrypoint_payload.js';
|
|
4
|
-
export * from './entrypoint_utils.js';
|
|
5
|
-
export * from './single_key_account_entrypoint.js';
|
|
6
|
-
export * from './stored_key_account_entrypoint.js';
|
|
7
|
-
/**
|
|
8
|
-
* Represents a transaction entrypoint in an account contract.
|
|
9
|
-
* Knows how to assemble a transaction execution request given a set of function calls.
|
|
10
|
-
*/
|
|
11
|
-
export interface Entrypoint {
|
|
12
|
-
/**
|
|
13
|
-
* Generates an authenticated request out of set of intents
|
|
14
|
-
* @param executions - The execution intents to be run.
|
|
15
|
-
* @param opts - Options.
|
|
16
|
-
* @returns The authenticated transaction execution request.
|
|
17
|
-
*/
|
|
18
|
-
createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/account/entrypoint/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEhE,cAAc,sCAAsC,CAAC;AACrD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AAGnD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnF"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from './auth_witness_account_entrypoint.js';
|
|
2
|
-
export * from './entrypoint_payload.js';
|
|
3
|
-
export * from './entrypoint_utils.js';
|
|
4
|
-
export * from './single_key_account_entrypoint.js';
|
|
5
|
-
export * from './stored_key_account_entrypoint.js';
|
|
6
|
-
// docs:end:entrypoint-interface
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWNjb3VudC9lbnRyeXBvaW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQWdCbkQsZ0NBQWdDIn0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { AztecAddress, GrumpkinPrivateKey, PartialAddress } from '@aztec/circuits.js';
|
|
2
|
-
import { FunctionCall, TxExecutionRequest } from '@aztec/types';
|
|
3
|
-
import { Entrypoint } from './index.js';
|
|
4
|
-
/**
|
|
5
|
-
* Account contract implementation that uses a single key for signing and encryption. This public key is not
|
|
6
|
-
* stored in the contract, but rather verified against the contract address. Note that this approach is not
|
|
7
|
-
* secure and should not be used in real use cases.
|
|
8
|
-
*/
|
|
9
|
-
export declare class SingleKeyAccountEntrypoint implements Entrypoint {
|
|
10
|
-
private address;
|
|
11
|
-
private partialAddress;
|
|
12
|
-
private privateKey;
|
|
13
|
-
private chainId;
|
|
14
|
-
private version;
|
|
15
|
-
constructor(address: AztecAddress, partialAddress: PartialAddress, privateKey: GrumpkinPrivateKey, chainId?: number, version?: number);
|
|
16
|
-
createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
|
|
17
|
-
private getEntrypointAbi;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=single_key_account_entrypoint.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"single_key_account_entrypoint.d.ts","sourceRoot":"","sources":["../../../src/account/entrypoint/single_key_account_entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,kBAAkB,EAAE,cAAc,EAAa,MAAM,oBAAoB,CAAC;AAG/G,OAAO,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAMjF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,UAAU;IAEzD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBAJP,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,kBAAkB,EAC9B,OAAO,GAAE,MAAyB,EAClC,OAAO,GAAE,MAAwB;IAGrC,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqBvF,OAAO,CAAC,gBAAgB;CAQzB"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { FunctionData, TxContext } from '@aztec/circuits.js';
|
|
2
|
-
import { Schnorr } from '@aztec/circuits.js/barretenberg';
|
|
3
|
-
import { encodeArguments } from '@aztec/foundation/abi';
|
|
4
|
-
import { PackedArguments, TxExecutionRequest } from '@aztec/types';
|
|
5
|
-
import SchnorrSingleKeyAccountContractAbi from '../../abis/schnorr_single_key_account_contract.json' assert { type: 'json' };
|
|
6
|
-
import { generatePublicKey } from '../../index.js';
|
|
7
|
-
import { DEFAULT_CHAIN_ID, DEFAULT_VERSION } from '../../utils/defaults.js';
|
|
8
|
-
import { buildPayload, hashPayload } from './entrypoint_payload.js';
|
|
9
|
-
/**
|
|
10
|
-
* Account contract implementation that uses a single key for signing and encryption. This public key is not
|
|
11
|
-
* stored in the contract, but rather verified against the contract address. Note that this approach is not
|
|
12
|
-
* secure and should not be used in real use cases.
|
|
13
|
-
*/
|
|
14
|
-
export class SingleKeyAccountEntrypoint {
|
|
15
|
-
constructor(address, partialAddress, privateKey, chainId = DEFAULT_CHAIN_ID, version = DEFAULT_VERSION) {
|
|
16
|
-
this.address = address;
|
|
17
|
-
this.partialAddress = partialAddress;
|
|
18
|
-
this.privateKey = privateKey;
|
|
19
|
-
this.chainId = chainId;
|
|
20
|
-
this.version = version;
|
|
21
|
-
}
|
|
22
|
-
async createTxExecutionRequest(executions) {
|
|
23
|
-
const { payload, packedArguments: callsPackedArguments } = await buildPayload(executions);
|
|
24
|
-
const message = await hashPayload(payload);
|
|
25
|
-
const signer = await Schnorr.new();
|
|
26
|
-
const signature = signer.constructSignature(message, this.privateKey).toBuffer();
|
|
27
|
-
const publicKey = await generatePublicKey(this.privateKey);
|
|
28
|
-
const args = [payload, publicKey.toBuffer(), signature, this.partialAddress];
|
|
29
|
-
const abi = this.getEntrypointAbi();
|
|
30
|
-
const packedArgs = await PackedArguments.fromArgs(encodeArguments(abi, args));
|
|
31
|
-
const txRequest = TxExecutionRequest.from({
|
|
32
|
-
argsHash: packedArgs.hash,
|
|
33
|
-
origin: this.address,
|
|
34
|
-
functionData: FunctionData.fromAbi(abi),
|
|
35
|
-
txContext: TxContext.empty(this.chainId, this.version),
|
|
36
|
-
packedArguments: [...callsPackedArguments, packedArgs],
|
|
37
|
-
});
|
|
38
|
-
return txRequest;
|
|
39
|
-
}
|
|
40
|
-
getEntrypointAbi() {
|
|
41
|
-
// We use the SchnorrSingleKeyAccountContract because it implements the interface we need, but ideally
|
|
42
|
-
// we should have an interface that defines the entrypoint for SingleKeyAccountContracts and
|
|
43
|
-
// load the abi from it.
|
|
44
|
-
const abi = SchnorrSingleKeyAccountContractAbi.functions.find(f => f.name === 'entrypoint');
|
|
45
|
-
if (!abi)
|
|
46
|
-
throw new Error(`Entrypoint abi for account contract not found`);
|
|
47
|
-
return abi;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlX2tleV9hY2NvdW50X2VudHJ5cG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWNjb3VudC9lbnRyeXBvaW50L3NpbmdsZV9rZXlfYWNjb3VudF9lbnRyeXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsWUFBWSxFQUFzQyxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUQsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWpGLE9BQU8sa0NBQWtDLE1BQU0scURBQXFELENBQUMsU0FBUyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDN0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHcEU7Ozs7R0FJRztBQUNILE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFDVSxPQUFxQixFQUNyQixjQUE4QixFQUM5QixVQUE4QixFQUM5QixVQUFrQixnQkFBZ0IsRUFDbEMsVUFBa0IsZUFBZTtRQUpqQyxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUM5QixZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtJQUN4QyxDQUFDO0lBRUosS0FBSyxDQUFDLHdCQUF3QixDQUFDLFVBQTBCO1FBQ3ZELE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakYsTUFBTSxTQUFTLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0UsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RSxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7WUFDeEMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJO1lBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixZQUFZLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDdkMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3RELGVBQWUsRUFBRSxDQUFDLEdBQUcsb0JBQW9CLEVBQUUsVUFBVSxDQUFDO1NBQ3ZELENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsc0dBQXNHO1FBQ3RHLDRGQUE0RjtRQUM1Rix3QkFBd0I7UUFDeEIsTUFBTSxHQUFHLEdBQUksa0NBQXlELENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7UUFDcEgsSUFBSSxDQUFDLEdBQUc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDM0UsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YifQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { AztecAddress } from '@aztec/circuits.js';
|
|
3
|
-
import { Signature } from '@aztec/circuits.js/barretenberg';
|
|
4
|
-
import { FunctionCall, TxExecutionRequest } from '@aztec/types';
|
|
5
|
-
import { Entrypoint } from './index.js';
|
|
6
|
-
/**
|
|
7
|
-
* Account contract implementation that keeps a signing public key in storage, and is retrieved on
|
|
8
|
-
* every new request in order to validate the payload signature.
|
|
9
|
-
*/
|
|
10
|
-
export declare class StoredKeyAccountEntrypoint implements Entrypoint {
|
|
11
|
-
private address;
|
|
12
|
-
private sign;
|
|
13
|
-
private chainId;
|
|
14
|
-
private version;
|
|
15
|
-
private log;
|
|
16
|
-
constructor(address: AztecAddress, sign: (msg: Buffer) => Signature, chainId?: number, version?: number);
|
|
17
|
-
createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
|
|
18
|
-
private getEntrypointAbi;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=stored_key_account_entrypoint.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stored_key_account_entrypoint.d.ts","sourceRoot":"","sources":["../../../src/account/entrypoint/stored_key_account_entrypoint.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAA2B,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKjF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,UAAU;IAIzD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,GAAG,CAAc;gBAGf,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,EAChC,OAAO,GAAE,MAAyB,EAClC,OAAO,GAAE,MAAwB;IAKrC,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoBvF,OAAO,CAAC,gBAAgB;CAQzB"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { FunctionData, TxContext } from '@aztec/circuits.js';
|
|
2
|
-
import { encodeArguments } from '@aztec/foundation/abi';
|
|
3
|
-
import { createDebugLogger } from '@aztec/foundation/log';
|
|
4
|
-
import { PackedArguments, TxExecutionRequest } from '@aztec/types';
|
|
5
|
-
import EcdsaAccountContractAbi from '../../abis/ecdsa_account_contract.json' assert { type: 'json' };
|
|
6
|
-
import { DEFAULT_CHAIN_ID, DEFAULT_VERSION } from '../../utils/defaults.js';
|
|
7
|
-
import { buildPayload, hashPayload } from './entrypoint_payload.js';
|
|
8
|
-
/**
|
|
9
|
-
* Account contract implementation that keeps a signing public key in storage, and is retrieved on
|
|
10
|
-
* every new request in order to validate the payload signature.
|
|
11
|
-
*/
|
|
12
|
-
export class StoredKeyAccountEntrypoint {
|
|
13
|
-
constructor(address, sign, chainId = DEFAULT_CHAIN_ID, version = DEFAULT_VERSION) {
|
|
14
|
-
this.address = address;
|
|
15
|
-
this.sign = sign;
|
|
16
|
-
this.chainId = chainId;
|
|
17
|
-
this.version = version;
|
|
18
|
-
this.log = createDebugLogger('aztec:client:accounts:stored_key');
|
|
19
|
-
}
|
|
20
|
-
async createTxExecutionRequest(executions) {
|
|
21
|
-
const { payload, packedArguments: callsPackedArguments } = await buildPayload(executions);
|
|
22
|
-
const message = await hashPayload(payload);
|
|
23
|
-
const signature = this.sign(message).toBuffer();
|
|
24
|
-
this.log(`Signed challenge ${message.toString('hex')} as ${signature.toString('hex')}`);
|
|
25
|
-
const args = [payload, signature];
|
|
26
|
-
const abi = this.getEntrypointAbi();
|
|
27
|
-
const packedArgs = await PackedArguments.fromArgs(encodeArguments(abi, args));
|
|
28
|
-
const txRequest = TxExecutionRequest.from({
|
|
29
|
-
argsHash: packedArgs.hash,
|
|
30
|
-
origin: this.address,
|
|
31
|
-
functionData: FunctionData.fromAbi(abi),
|
|
32
|
-
txContext: TxContext.empty(this.chainId, this.version),
|
|
33
|
-
packedArguments: [...callsPackedArguments, packedArgs],
|
|
34
|
-
});
|
|
35
|
-
return txRequest;
|
|
36
|
-
}
|
|
37
|
-
getEntrypointAbi() {
|
|
38
|
-
// We use the EcdsaAccountContractAbi because it implements the interface we need, but ideally
|
|
39
|
-
// we should have an interface that defines the entrypoint for StoredKeyAccountContracts and
|
|
40
|
-
// load the abi from it.
|
|
41
|
-
const abi = EcdsaAccountContractAbi.functions.find(f => f.name === 'entrypoint');
|
|
42
|
-
if (!abi)
|
|
43
|
-
throw new Error(`Entrypoint abi for account contract not found`);
|
|
44
|
-
return abi;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkX2tleV9hY2NvdW50X2VudHJ5cG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWNjb3VudC9lbnRyeXBvaW50L3N0b3JlZF9rZXlfYWNjb3VudF9lbnRyeXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTNFLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVqRixPQUFPLHVCQUF1QixNQUFNLHdDQUF3QyxDQUFDLFNBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3BFOzs7R0FHRztBQUNILE1BQU0sT0FBTywwQkFBMEI7SUFHckMsWUFDVSxPQUFxQixFQUNyQixJQUFnQyxFQUNoQyxVQUFrQixnQkFBZ0IsRUFDbEMsVUFBa0IsZUFBZTtRQUhqQyxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQTRCO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBRXpDLElBQUksQ0FBQyxHQUFHLEdBQUcsaUJBQWlCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsS0FBSyxDQUFDLHdCQUF3QixDQUFDLFVBQTBCO1FBQ3ZELE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXhGLE1BQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sVUFBVSxHQUFHLE1BQU0sZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1lBQ3hDLFFBQVEsRUFBRSxVQUFVLENBQUMsSUFBSTtZQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsWUFBWSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ3ZDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN0RCxlQUFlLEVBQUUsQ0FBQyxHQUFHLG9CQUFvQixFQUFFLFVBQVUsQ0FBQztTQUN2RCxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLDhGQUE4RjtRQUM5Riw0RkFBNEY7UUFDNUYsd0JBQXdCO1FBQ3hCLE1BQU0sR0FBRyxHQUFJLHVCQUE4QyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDO1FBQ3pHLElBQUksQ0FBQyxHQUFHO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGIn0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aztec_rpc_client.d.ts","sourceRoot":"","sources":["../../src/aztec_rpc_client/aztec_rpc_client.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,EACL,QAAQ,EAST,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,eAAO,MAAM,oBAAoB,QAAS,MAAM,kCAAyB,QAmBtE,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { AztecAddress, CompleteAddress, EthAddress, Fr, GrumpkinScalar, Point } from '@aztec/circuits.js';
|
|
2
|
-
import { createJsonRpcClient, defaultFetch } from '@aztec/foundation/json-rpc/client';
|
|
3
|
-
import { ContractData, ExtendedContractData, L2BlockL2Logs, NotePreimage, Tx, TxExecutionRequest, TxHash, TxReceipt, } from '@aztec/types';
|
|
4
|
-
export { makeFetch } from '@aztec/foundation/json-rpc/client';
|
|
5
|
-
export const createAztecRpcClient = (url, fetch = defaultFetch) => createJsonRpcClient(url, {
|
|
6
|
-
CompleteAddress,
|
|
7
|
-
AztecAddress,
|
|
8
|
-
TxExecutionRequest,
|
|
9
|
-
ContractData,
|
|
10
|
-
ExtendedContractData,
|
|
11
|
-
TxHash,
|
|
12
|
-
EthAddress,
|
|
13
|
-
Point,
|
|
14
|
-
Fr,
|
|
15
|
-
GrumpkinScalar,
|
|
16
|
-
NotePreimage,
|
|
17
|
-
}, { Tx, TxReceipt, L2BlockL2Logs }, false, fetch);
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfcnBjX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9henRlY19ycGNfY2xpZW50L2F6dGVjX3JwY19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RGLE9BQU8sRUFFTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixZQUFZLEVBQ1osRUFBRSxFQUNGLGtCQUFrQixFQUNsQixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsWUFBWSxFQUFZLEVBQUUsQ0FDbEYsbUJBQW1CLENBQ2pCLEdBQUcsRUFDSDtJQUNFLGVBQWU7SUFDZixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsTUFBTTtJQUNOLFVBQVU7SUFDVixLQUFLO0lBQ0wsRUFBRTtJQUNGLGNBQWM7SUFDZCxZQUFZO0NBQ2IsRUFDRCxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEVBQ2hDLEtBQUssRUFDTCxLQUFLLENBQ04sQ0FBQyJ9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aztec_rpc_client/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './aztec_rpc_client.js';
|
|
2
|
-
export * from './wallet.js';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWNfcnBjX2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsYUFBYSxDQUFDIn0=
|