@aztec/aztec.js 0.7.2 → 0.7.4
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 -0
- package/dest/abis/ecdsa_account_contract.json +679 -0
- package/dest/abis/schnorr_account_contract.json +667 -0
- package/dest/abis/schnorr_single_key_account_contract.json +602 -0
- 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 +15 -0
- package/dest/account/contract/ecdsa_account_contract.d.ts.map +1 -0
- package/dest/account/contract/ecdsa_account_contract.js +33 -0
- package/dest/account/contract/index.d.ts +31 -0
- package/dest/account/contract/index.d.ts.map +1 -0
- package/dest/account/contract/index.js +6 -0
- package/dest/account/contract/schnorr_account_contract.d.ts +15 -0
- package/dest/account/contract/schnorr_account_contract.d.ts.map +1 -0
- package/dest/account/contract/schnorr_account_contract.js +33 -0
- package/dest/account/contract/single_key_account_contract.d.ts +14 -0
- package/dest/account/contract/single_key_account_contract.d.ts.map +1 -0
- package/dest/account/contract/single_key_account_contract.js +40 -0
- 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 +28 -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 +50 -0
- package/dest/account/index.d.ts.map +1 -0
- package/dest/account/index.js +65 -0
- 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/manager/deploy_account_sent_tx.d.ts +28 -0
- package/dest/account/manager/deploy_account_sent_tx.d.ts.map +1 -0
- package/dest/account/manager/deploy_account_sent_tx.js +29 -0
- package/dest/account/manager/index.d.ts +73 -0
- package/dest/account/manager/index.d.ts.map +1 -0
- package/dest/account/manager/index.js +115 -0
- package/dest/aztec_rpc_client.d.ts +5 -0
- package/dest/aztec_rpc_client.d.ts.map +1 -0
- package/dest/aztec_rpc_client.js +19 -0
- package/dest/contract/base_contract_interaction.d.ts +45 -0
- package/dest/contract/base_contract_interaction.d.ts.map +1 -0
- package/dest/contract/base_contract_interaction.js +37 -0
- package/dest/contract/batch_call.d.ts +15 -0
- package/dest/contract/batch_call.d.ts.map +1 -0
- package/dest/contract/batch_call.js +21 -0
- package/dest/contract/checker.d.ts +11 -0
- package/dest/contract/checker.d.ts.map +1 -0
- package/dest/contract/checker.js +98 -0
- package/dest/contract/checker.test.d.ts +2 -0
- package/dest/contract/checker.test.d.ts.map +1 -0
- package/dest/contract/checker.test.js +168 -0
- package/dest/contract/contract.d.ts +39 -0
- package/dest/contract/contract.d.ts.map +1 -0
- package/dest/contract/contract.js +45 -0
- package/dest/contract/contract.test.d.ts +2 -0
- package/dest/contract/contract.test.d.ts.map +1 -0
- package/dest/contract/contract.test.js +147 -0
- package/dest/contract/contract_base.d.ts +72 -0
- package/dest/contract/contract_base.d.ts.map +1 -0
- package/dest/contract/contract_base.js +74 -0
- package/dest/contract/contract_function_interaction.d.ts +49 -0
- package/dest/contract/contract_function_interaction.d.ts.map +1 -0
- package/dest/contract/contract_function_interaction.js +59 -0
- package/dest/contract/index.d.ts +6 -0
- package/dest/contract/index.d.ts.map +1 -0
- package/dest/contract/index.js +6 -0
- package/dest/contract/sent_tx.d.ts +58 -0
- package/dest/contract/sent_tx.d.ts.map +1 -0
- package/dest/contract/sent_tx.js +86 -0
- package/dest/contract/sent_tx.test.d.ts +2 -0
- package/dest/contract/sent_tx.test.d.ts.map +1 -0
- package/dest/contract/sent_tx.test.js +42 -0
- package/dest/contract_deployer/contract_deployer.d.ts +25 -0
- package/dest/contract_deployer/contract_deployer.d.ts.map +1 -0
- package/dest/contract_deployer/contract_deployer.js +26 -0
- package/dest/contract_deployer/contract_deployer.test.d.ts +2 -0
- package/dest/contract_deployer/contract_deployer.test.d.ts.map +1 -0
- package/dest/contract_deployer/contract_deployer.test.js +46 -0
- package/dest/contract_deployer/deploy_method.d.ts +63 -0
- package/dest/contract_deployer/deploy_method.d.ts.map +1 -0
- package/dest/contract_deployer/deploy_method.js +81 -0
- package/dest/contract_deployer/deploy_sent_tx.d.ts +35 -0
- package/dest/contract_deployer/deploy_sent_tx.d.ts.map +1 -0
- package/dest/contract_deployer/deploy_sent_tx.js +39 -0
- package/dest/contract_deployer/index.d.ts +2 -0
- package/dest/contract_deployer/index.d.ts.map +1 -0
- package/dest/contract_deployer/index.js +2 -0
- package/dest/index.d.ts +14 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +14 -0
- package/dest/main.js +2 -0
- package/dest/main.js.LICENSE.txt +10 -0
- package/dest/sandbox/index.d.ts +167 -0
- package/dest/sandbox/index.d.ts.map +1 -0
- package/dest/sandbox/index.js +69 -0
- package/dest/utils/abi_types.d.ts +7 -0
- package/dest/utils/abi_types.d.ts.map +1 -0
- package/dest/utils/abi_types.js +2 -0
- package/dest/utils/account.d.ts +23 -0
- package/dest/utils/account.d.ts.map +1 -0
- package/dest/utils/account.js +40 -0
- package/dest/utils/cheat_codes.d.ts +199 -0
- package/dest/utils/cheat_codes.d.ts.map +1 -0
- package/dest/utils/cheat_codes.js +279 -0
- package/dest/utils/defaults.d.ts +5 -0
- package/dest/utils/defaults.d.ts.map +1 -0
- package/dest/utils/defaults.js +5 -0
- package/dest/utils/index.d.ts +8 -0
- package/dest/utils/index.d.ts.map +1 -0
- package/dest/utils/index.js +8 -0
- package/dest/utils/l1_contracts.d.ts +32 -0
- package/dest/utils/l1_contracts.d.ts.map +1 -0
- package/dest/utils/l1_contracts.js +16 -0
- package/dest/utils/l2_contracts.d.ts +10 -0
- package/dest/utils/l2_contracts.d.ts.map +1 -0
- package/dest/utils/l2_contracts.js +10 -0
- package/dest/utils/pub_key.d.ts +8 -0
- package/dest/utils/pub_key.d.ts.map +1 -0
- package/dest/utils/pub_key.js +11 -0
- package/dest/utils/secrets.d.ts +8 -0
- package/dest/utils/secrets.d.ts.map +1 -0
- package/dest/utils/secrets.js +12 -0
- 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 +531 -12
- package/src/abis/schnorr_account_contract.json +531 -12
- 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} +2 -0
- 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/Dockerfile +0 -15
- 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/src/account/{entrypoint → defaults}/entrypoint_payload.ts +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { CompleteAddress } from '@aztec/types';
|
|
2
|
+
import { AccountWallet } from '../index.js';
|
|
3
|
+
import { EcdsaAccountContract } from './contract/ecdsa_account_contract.js';
|
|
4
|
+
import { SchnorrAccountContract } from './contract/schnorr_account_contract.js';
|
|
5
|
+
import { SingleKeyAccountContract } from './contract/single_key_account_contract.js';
|
|
6
|
+
import { AccountManager } from './manager/index.js';
|
|
7
|
+
export * from './contract/index.js';
|
|
8
|
+
export * from './defaults/index.js';
|
|
9
|
+
export { AccountManager, CompleteAddress };
|
|
10
|
+
/**
|
|
11
|
+
* Creates an Account that relies on an ECDSA signing key for authentication.
|
|
12
|
+
* @param rpc - An AztecRPC server instance.
|
|
13
|
+
* @param encryptionPrivateKey - Grumpkin key used for note encryption.
|
|
14
|
+
* @param signingPrivateKey - Secp256k1 key used for signing transactions.
|
|
15
|
+
* @param saltOrAddress - Deployment salt or complete address if account contract is already deployed.
|
|
16
|
+
*/
|
|
17
|
+
export function getEcdsaAccount(rpc, encryptionPrivateKey, signingPrivateKey, saltOrAddress) {
|
|
18
|
+
return new AccountManager(rpc, encryptionPrivateKey, new EcdsaAccountContract(signingPrivateKey), saltOrAddress);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Creates an Account that relies on a Grumpkin signing key for authentication.
|
|
22
|
+
* @param rpc - An AztecRPC server instance.
|
|
23
|
+
* @param encryptionPrivateKey - Grumpkin key used for note encryption.
|
|
24
|
+
* @param signingPrivateKey - Grumpkin key used for signing transactions.
|
|
25
|
+
* @param saltOrAddress - Deployment salt or complete address if account contract is already deployed.
|
|
26
|
+
*/
|
|
27
|
+
export function getSchnorrAccount(rpc, encryptionPrivateKey, signingPrivateKey, saltOrAddress) {
|
|
28
|
+
return new AccountManager(rpc, encryptionPrivateKey, new SchnorrAccountContract(signingPrivateKey), saltOrAddress);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Creates an Account that uses the same Grumpkin key for encryption and authentication.
|
|
32
|
+
* @param rpc - An AztecRPC server instance.
|
|
33
|
+
* @param encryptionAndSigningPrivateKey - Grumpkin key used for note encryption and signing transactions.
|
|
34
|
+
* @param saltOrAddress - Deployment salt or complete address if account contract is already deployed.
|
|
35
|
+
*/
|
|
36
|
+
export function getUnsafeSchnorrAccount(rpc, encryptionAndSigningPrivateKey, saltOrAddress) {
|
|
37
|
+
return new AccountManager(rpc, encryptionAndSigningPrivateKey, new SingleKeyAccountContract(encryptionAndSigningPrivateKey), saltOrAddress);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Gets a wallet for an already registered account using Schnorr signatures with a single key for encryption and authentication.
|
|
41
|
+
* @param rpc - An AztecRPC server instance.
|
|
42
|
+
* @param address - Address for the account.
|
|
43
|
+
* @param signingPrivateKey - Grumpkin key used for note encryption and signing transactions.
|
|
44
|
+
* @returns A wallet for this account that can be used to interact with a contract instance.
|
|
45
|
+
*/
|
|
46
|
+
export function getUnsafeSchnorrWallet(rpc, address, signingKey) {
|
|
47
|
+
return getWallet(rpc, address, new SingleKeyAccountContract(signingKey));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Gets a wallet for an already registered account.
|
|
51
|
+
* @param rpc - An AztecRPC server instance.
|
|
52
|
+
* @param address - Address for the account.
|
|
53
|
+
* @param accountContract - Account contract implementation.
|
|
54
|
+
* @returns A wallet for this account that can be used to interact with a contract instance.
|
|
55
|
+
*/
|
|
56
|
+
export async function getWallet(rpc, address, accountContract) {
|
|
57
|
+
const completeAddress = await rpc.getRegisteredAccount(address);
|
|
58
|
+
if (!completeAddress) {
|
|
59
|
+
throw new Error(`Account ${address} not found`);
|
|
60
|
+
}
|
|
61
|
+
const nodeInfo = await rpc.getNodeInfo();
|
|
62
|
+
const entrypoint = await accountContract.getInterface(completeAddress, nodeInfo);
|
|
63
|
+
return new AccountWallet(rpc, entrypoint);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjb3VudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksZUFBZSxFQUFzQixNQUFNLGNBQWMsQ0FBQztBQUU3RSxPQUFPLEVBQW1CLGFBQWEsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxDQUFDO0FBSzNDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLEdBQWEsRUFDYixvQkFBd0MsRUFDeEMsaUJBQXlCLEVBQ3pCLGFBQXNDO0lBRXRDLE9BQU8sSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFFLElBQUksb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNuSCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFhLEVBQ2Isb0JBQXdDLEVBQ3hDLGlCQUFxQyxFQUNyQyxhQUFzQztJQUV0QyxPQUFPLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDckgsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxHQUFhLEVBQ2IsOEJBQWtELEVBQ2xELGFBQXNDO0lBRXRDLE9BQU8sSUFBSSxjQUFjLENBQ3ZCLEdBQUcsRUFDSCw4QkFBOEIsRUFDOUIsSUFBSSx3QkFBd0IsQ0FBQyw4QkFBOEIsQ0FBQyxFQUM1RCxhQUFhLENBQ2QsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLEdBQWEsRUFDYixPQUFxQixFQUNyQixVQUE4QjtJQUU5QixPQUFPLFNBQVMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxTQUFTLENBQzdCLEdBQWEsRUFDYixPQUFxQixFQUNyQixlQUFnQztJQUVoQyxNQUFNLGVBQWUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsZUFBZSxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxPQUFPLFlBQVksQ0FBQyxDQUFDO0tBQ2pEO0lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsTUFBTSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqRixPQUFPLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUM1QyxDQUFDIn0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Fr } from '@aztec/circuits.js';
|
|
2
|
+
import { AuthWitness, CompleteAddress, FunctionCall, TxExecutionRequest } from '@aztec/types';
|
|
3
|
+
/** Creates authorization witnesses. */
|
|
4
|
+
export interface AuthWitnessProvider {
|
|
5
|
+
/**
|
|
6
|
+
* Create an authorization witness for the given message.
|
|
7
|
+
* @param message - Message to authorize.
|
|
8
|
+
*/
|
|
9
|
+
createAuthWitness(message: Fr): Promise<AuthWitness>;
|
|
10
|
+
}
|
|
11
|
+
/** Creates transaction execution requests out of a set of function calls. */
|
|
12
|
+
export interface EntrypointInterface {
|
|
13
|
+
/**
|
|
14
|
+
* Generates an authenticated request out of set of function calls.
|
|
15
|
+
* @param executions - The execution intents to be run.
|
|
16
|
+
* @param opts - Options.
|
|
17
|
+
* @returns The authenticated transaction execution request.
|
|
18
|
+
*/
|
|
19
|
+
createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Handler for interfacing with an account. Knows how to create transaction execution
|
|
23
|
+
* requests and authorize actions for its corresponding account.
|
|
24
|
+
*/
|
|
25
|
+
export interface AccountInterface extends AuthWitnessProvider, EntrypointInterface {
|
|
26
|
+
/**
|
|
27
|
+
* Returns the complete address for this account.
|
|
28
|
+
*/
|
|
29
|
+
getCompleteAddress(): CompleteAddress;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/account/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAG9F,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACtD;AAED,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnF;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB,EAAE,mBAAmB;IAChF;;OAEG;IACH,kBAAkB,IAAI,eAAe,CAAC;CACvC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FieldsOf } from '@aztec/circuits.js';
|
|
2
|
+
import { TxHash, TxReceipt } from '@aztec/types';
|
|
3
|
+
import { SentTx, WaitOpts, Wallet } from '../../index.js';
|
|
4
|
+
/** Extends a transaction receipt with a wallet instance for the newly deployed contract. */
|
|
5
|
+
export type DeployAccountTxReceipt = FieldsOf<TxReceipt> & {
|
|
6
|
+
/** Wallet that corresponds to the newly deployed account contract. */
|
|
7
|
+
wallet: Wallet;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* A deployment transaction for an account contract sent to the network, extending SentTx with methods to get the resulting wallet.
|
|
11
|
+
*/
|
|
12
|
+
export declare class DeployAccountSentTx extends SentTx {
|
|
13
|
+
private wallet;
|
|
14
|
+
constructor(wallet: Wallet, txHashPromise: Promise<TxHash>);
|
|
15
|
+
/**
|
|
16
|
+
* Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
|
|
17
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
18
|
+
* @returns The deployed contract instance.
|
|
19
|
+
*/
|
|
20
|
+
getWallet(opts?: WaitOpts): Promise<Wallet>;
|
|
21
|
+
/**
|
|
22
|
+
* Awaits for the tx to be mined and returns the receipt along with a wallet instance. Throws if tx is not mined.
|
|
23
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
24
|
+
* @returns The transaction receipt with the wallet for the deployed account contract.
|
|
25
|
+
*/
|
|
26
|
+
wait(opts?: WaitOpts): Promise<DeployAccountTxReceipt>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=deploy_account_sent_tx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy_account_sent_tx.d.ts","sourceRoot":"","sources":["../../../src/account/manager/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,gBAAgB,CAAC;AAE1D,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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SentTx } from '../../index.js';
|
|
2
|
+
/**
|
|
3
|
+
* A deployment transaction for an account contract sent to the network, extending SentTx with methods to get the resulting wallet.
|
|
4
|
+
*/
|
|
5
|
+
export class DeployAccountSentTx extends SentTx {
|
|
6
|
+
constructor(wallet, txHashPromise) {
|
|
7
|
+
super(wallet, txHashPromise);
|
|
8
|
+
this.wallet = wallet;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
|
|
12
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
13
|
+
* @returns The deployed contract instance.
|
|
14
|
+
*/
|
|
15
|
+
async getWallet(opts) {
|
|
16
|
+
const receipt = await this.wait(opts);
|
|
17
|
+
return receipt.wallet;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Awaits for the tx to be mined and returns the receipt along with a wallet instance. Throws if tx is not mined.
|
|
21
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
22
|
+
* @returns The transaction receipt with the wallet for the deployed account contract.
|
|
23
|
+
*/
|
|
24
|
+
async wait(opts) {
|
|
25
|
+
const receipt = await super.wait(opts);
|
|
26
|
+
return { ...receipt, wallet: this.wallet };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnRfc2VudF90eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hY2NvdW50L21hbmFnZXIvZGVwbG95X2FjY291bnRfc2VudF90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsTUFBTSxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBUTFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG1CQUFvQixTQUFRLE1BQU07SUFDN0MsWUFBb0IsTUFBYyxFQUFFLGFBQThCO1FBQ2hFLEtBQUssQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFEWCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRWxDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFlO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQWU7UUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdDLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Fr } from '@aztec/circuits.js';
|
|
2
|
+
import { AztecRPC, CompleteAddress, GrumpkinPrivateKey } from '@aztec/types';
|
|
3
|
+
import { AccountWallet, DeployMethod, WaitOpts } from '../../index.js';
|
|
4
|
+
import { AccountContract, Salt } from '../index.js';
|
|
5
|
+
import { AccountInterface } from '../interface.js';
|
|
6
|
+
import { DeployAccountSentTx } from './deploy_account_sent_tx.js';
|
|
7
|
+
/**
|
|
8
|
+
* Manages a user account. Provides methods for calculating the account's address, deploying the account contract,
|
|
9
|
+
* and creating and registering the user wallet in the RPC server.
|
|
10
|
+
*/
|
|
11
|
+
export declare class AccountManager {
|
|
12
|
+
private rpc;
|
|
13
|
+
private encryptionPrivateKey;
|
|
14
|
+
private accountContract;
|
|
15
|
+
/** Deployment salt for the account contract. */
|
|
16
|
+
readonly salt?: Fr;
|
|
17
|
+
private completeAddress?;
|
|
18
|
+
private encryptionPublicKey?;
|
|
19
|
+
private deployMethod?;
|
|
20
|
+
constructor(rpc: AztecRPC, encryptionPrivateKey: GrumpkinPrivateKey, accountContract: AccountContract, saltOrAddress?: Salt | CompleteAddress);
|
|
21
|
+
protected getEncryptionPublicKey(): Promise<import("@aztec/circuits.js").Point>;
|
|
22
|
+
/**
|
|
23
|
+
* Returns the entrypoint for this account as defined by its account contract.
|
|
24
|
+
* @returns An entrypoint.
|
|
25
|
+
*/
|
|
26
|
+
getAccount(): Promise<AccountInterface>;
|
|
27
|
+
/**
|
|
28
|
+
* Gets the calculated complete address associated with this account.
|
|
29
|
+
* Does not require the account to be deployed or registered.
|
|
30
|
+
* @returns The address, partial address, and encryption public key.
|
|
31
|
+
*/
|
|
32
|
+
getCompleteAddress(): Promise<CompleteAddress>;
|
|
33
|
+
/**
|
|
34
|
+
* Returns a Wallet instance associated with this account. Use it to create Contract
|
|
35
|
+
* instances to be interacted with from this account.
|
|
36
|
+
* @returns A Wallet instance.
|
|
37
|
+
*/
|
|
38
|
+
getWallet(): Promise<AccountWallet>;
|
|
39
|
+
/**
|
|
40
|
+
* Registers this account in the RPC server and returns the associated wallet. Registering
|
|
41
|
+
* the account on the RPC server is required for managing private state associated with it.
|
|
42
|
+
* Use the returned wallet to create Contract instances to be interacted with from this account.
|
|
43
|
+
* @returns A Wallet instance.
|
|
44
|
+
*/
|
|
45
|
+
register(): Promise<AccountWallet>;
|
|
46
|
+
/**
|
|
47
|
+
* Returns the pre-populated deployment method to deploy the account contract that backs this account.
|
|
48
|
+
* Typically you will not need this method and can call `deploy` directly. Use this for having finer
|
|
49
|
+
* grained control on when to create, simulate, and send the deployment tx.
|
|
50
|
+
* @returns A DeployMethod instance that deploys this account contract.
|
|
51
|
+
*/
|
|
52
|
+
getDeployMethod(): Promise<DeployMethod<import("../../index.js").Contract>>;
|
|
53
|
+
/**
|
|
54
|
+
* Deploys the account contract that backs this account.
|
|
55
|
+
* Uses the salt provided in the constructor or a randomly generated one.
|
|
56
|
+
* Note that if the Account is constructed with an explicit complete address
|
|
57
|
+
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
58
|
+
* Registers the account in the RPC server before deploying the contract.
|
|
59
|
+
* @returns A SentTx object that can be waited to get the associated Wallet.
|
|
60
|
+
*/
|
|
61
|
+
deploy(): Promise<DeployAccountSentTx>;
|
|
62
|
+
/**
|
|
63
|
+
* Deploys the account contract that backs this account and awaits the tx to be mined.
|
|
64
|
+
* Uses the salt provided in the constructor or a randomly generated one.
|
|
65
|
+
* Note that if the Account is constructed with an explicit complete address
|
|
66
|
+
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
67
|
+
* Registers the account in the RPC server before deploying the contract.
|
|
68
|
+
* @param opts - Options to wait for the tx to be mined.
|
|
69
|
+
* @returns A Wallet instance.
|
|
70
|
+
*/
|
|
71
|
+
waitDeploy(opts?: WaitOpts): Promise<AccountWallet>;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/account/manager/index.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,gBAAgB,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;GAGG;AACH,qBAAa,cAAc;IASvB,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,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAMpD;;;;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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { Fr, getContractDeploymentInfo } from '@aztec/circuits.js';
|
|
2
|
+
import { CompleteAddress } from '@aztec/types';
|
|
3
|
+
import { AccountWallet, ContractDeployer, generatePublicKey } from '../../index.js';
|
|
4
|
+
import { DeployAccountSentTx } from './deploy_account_sent_tx.js';
|
|
5
|
+
/**
|
|
6
|
+
* Manages a user account. Provides methods for calculating the account's address, deploying the account contract,
|
|
7
|
+
* and creating and registering the user wallet in the RPC server.
|
|
8
|
+
*/
|
|
9
|
+
export class AccountManager {
|
|
10
|
+
constructor(rpc, encryptionPrivateKey, accountContract, saltOrAddress) {
|
|
11
|
+
this.rpc = rpc;
|
|
12
|
+
this.encryptionPrivateKey = encryptionPrivateKey;
|
|
13
|
+
this.accountContract = accountContract;
|
|
14
|
+
if (saltOrAddress instanceof CompleteAddress) {
|
|
15
|
+
this.completeAddress = saltOrAddress;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
this.salt = saltOrAddress ? new Fr(saltOrAddress) : Fr.random();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async getEncryptionPublicKey() {
|
|
22
|
+
if (!this.encryptionPublicKey) {
|
|
23
|
+
this.encryptionPublicKey = await generatePublicKey(this.encryptionPrivateKey);
|
|
24
|
+
}
|
|
25
|
+
return this.encryptionPublicKey;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns the entrypoint for this account as defined by its account contract.
|
|
29
|
+
* @returns An entrypoint.
|
|
30
|
+
*/
|
|
31
|
+
async getAccount() {
|
|
32
|
+
const nodeInfo = await this.rpc.getNodeInfo();
|
|
33
|
+
const completeAddress = await this.getCompleteAddress();
|
|
34
|
+
return this.accountContract.getInterface(completeAddress, nodeInfo);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Gets the calculated complete address associated with this account.
|
|
38
|
+
* Does not require the account to be deployed or registered.
|
|
39
|
+
* @returns The address, partial address, and encryption public key.
|
|
40
|
+
*/
|
|
41
|
+
async getCompleteAddress() {
|
|
42
|
+
if (!this.completeAddress) {
|
|
43
|
+
const encryptionPublicKey = await generatePublicKey(this.encryptionPrivateKey);
|
|
44
|
+
const contractDeploymentInfo = await getContractDeploymentInfo(this.accountContract.getContractAbi(), await this.accountContract.getDeploymentArgs(), this.salt, encryptionPublicKey);
|
|
45
|
+
this.completeAddress = contractDeploymentInfo.completeAddress;
|
|
46
|
+
}
|
|
47
|
+
return this.completeAddress;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns a Wallet instance associated with this account. Use it to create Contract
|
|
51
|
+
* instances to be interacted with from this account.
|
|
52
|
+
* @returns A Wallet instance.
|
|
53
|
+
*/
|
|
54
|
+
async getWallet() {
|
|
55
|
+
const entrypoint = await this.getAccount();
|
|
56
|
+
return new AccountWallet(this.rpc, entrypoint);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Registers this account in the RPC server and returns the associated wallet. Registering
|
|
60
|
+
* the account on the RPC server is required for managing private state associated with it.
|
|
61
|
+
* Use the returned wallet to create Contract instances to be interacted with from this account.
|
|
62
|
+
* @returns A Wallet instance.
|
|
63
|
+
*/
|
|
64
|
+
async register() {
|
|
65
|
+
const completeAddress = await this.getCompleteAddress();
|
|
66
|
+
await this.rpc.registerAccount(this.encryptionPrivateKey, completeAddress.partialAddress);
|
|
67
|
+
return this.getWallet();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns the pre-populated deployment method to deploy the account contract that backs this account.
|
|
71
|
+
* Typically you will not need this method and can call `deploy` directly. Use this for having finer
|
|
72
|
+
* grained control on when to create, simulate, and send the deployment tx.
|
|
73
|
+
* @returns A DeployMethod instance that deploys this account contract.
|
|
74
|
+
*/
|
|
75
|
+
async getDeployMethod() {
|
|
76
|
+
if (!this.deployMethod) {
|
|
77
|
+
if (!this.salt)
|
|
78
|
+
throw new Error(`Cannot deploy account contract without known salt.`);
|
|
79
|
+
await this.register();
|
|
80
|
+
const encryptionPublicKey = await this.getEncryptionPublicKey();
|
|
81
|
+
const deployer = new ContractDeployer(this.accountContract.getContractAbi(), this.rpc, encryptionPublicKey);
|
|
82
|
+
const args = await this.accountContract.getDeploymentArgs();
|
|
83
|
+
this.deployMethod = deployer.deploy(...args);
|
|
84
|
+
}
|
|
85
|
+
return this.deployMethod;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Deploys the account contract that backs this account.
|
|
89
|
+
* Uses the salt provided in the constructor or a randomly generated one.
|
|
90
|
+
* Note that if the Account is constructed with an explicit complete address
|
|
91
|
+
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
92
|
+
* Registers the account in the RPC server before deploying the contract.
|
|
93
|
+
* @returns A SentTx object that can be waited to get the associated Wallet.
|
|
94
|
+
*/
|
|
95
|
+
async deploy() {
|
|
96
|
+
const deployMethod = await this.getDeployMethod();
|
|
97
|
+
const wallet = await this.getWallet();
|
|
98
|
+
const sentTx = deployMethod.send({ contractAddressSalt: this.salt });
|
|
99
|
+
return new DeployAccountSentTx(wallet, sentTx.getTxHash());
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Deploys the account contract that backs this account and awaits the tx to be mined.
|
|
103
|
+
* Uses the salt provided in the constructor or a randomly generated one.
|
|
104
|
+
* Note that if the Account is constructed with an explicit complete address
|
|
105
|
+
* it is assumed that the account contract has already been deployed and this method will throw.
|
|
106
|
+
* Registers the account in the RPC server before deploying the contract.
|
|
107
|
+
* @param opts - Options to wait for the tx to be mined.
|
|
108
|
+
* @returns A Wallet instance.
|
|
109
|
+
*/
|
|
110
|
+
async waitDeploy(opts = {}) {
|
|
111
|
+
await this.deploy().then(tx => tx.wait(opts));
|
|
112
|
+
return this.getWallet();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWNjb3VudC9tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQWEseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RSxPQUFPLEVBQVksZUFBZSxFQUFzQixNQUFNLGNBQWMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUEwQixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBUXpCLFlBQ1UsR0FBYSxFQUNiLG9CQUF3QyxFQUN4QyxlQUFnQyxFQUN4QyxhQUFzQztRQUg5QixRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQ2IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFvQjtRQUN4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFHeEMsSUFBSSxhQUFhLFlBQVksZUFBZSxFQUFFO1lBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDO1NBQ3RDO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFFUyxLQUFLLENBQUMsc0JBQXNCO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0saUJBQWlCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDL0U7UUFDRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lB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
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { defaultFetch } from '@aztec/foundation/json-rpc/client';
|
|
2
|
+
import { AztecRPC } from '@aztec/types';
|
|
3
|
+
export { makeFetch } from '@aztec/foundation/json-rpc/client';
|
|
4
|
+
export declare const createAztecRpcClient: (url: string, fetch?: typeof defaultFetch) => AztecRPC;
|
|
5
|
+
//# sourceMappingURL=aztec_rpc_client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aztec_rpc_client.d.ts","sourceRoot":"","sources":["../src/aztec_rpc_client.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,EAEL,QAAQ,EAST,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,eAAO,MAAM,oBAAoB,QAAS,MAAM,kCAAyB,QAoBtE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AztecAddress, CompleteAddress, EthAddress, Fr, GrumpkinScalar, Point } from '@aztec/circuits.js';
|
|
2
|
+
import { createJsonRpcClient, defaultFetch } from '@aztec/foundation/json-rpc/client';
|
|
3
|
+
import { AuthWitness, 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
|
+
AuthWitness,
|
|
18
|
+
}, { Tx, TxReceipt, L2BlockL2Logs }, false, fetch);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfcnBjX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9henRlY19ycGNfY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RixPQUFPLEVBQ0wsV0FBVyxFQUVYLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFlBQVksRUFDWixFQUFFLEVBQ0Ysa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsR0FBVyxFQUFFLEtBQUssR0FBRyxZQUFZLEVBQVksRUFBRSxDQUNsRixtQkFBbUIsQ0FDakIsR0FBRyxFQUNIO0lBQ0UsZUFBZTtJQUNmLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixNQUFNO0lBQ04sVUFBVTtJQUNWLEtBQUs7SUFDTCxFQUFFO0lBQ0YsY0FBYztJQUNkLFlBQVk7SUFDWixXQUFXO0NBQ1osRUFDRCxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEVBQ2hDLEtBQUssRUFDTCxLQUFLLENBQ04sQ0FBQyJ9
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { AztecRPC, Tx, TxExecutionRequest } from '@aztec/types';
|
|
2
|
+
import { SentTx } from './sent_tx.js';
|
|
3
|
+
/**
|
|
4
|
+
* Represents options for calling a (constrained) function in a contract.
|
|
5
|
+
* Allows the user to specify the sender address and nonce for a transaction.
|
|
6
|
+
*/
|
|
7
|
+
export interface SendMethodOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Wether to skip the simulation of the public part of the transaction.
|
|
10
|
+
*/
|
|
11
|
+
skipPublicSimulation?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Base class for an interaction with a contract, be it a deployment, a function call, or a batch.
|
|
15
|
+
* Implements the sequence create/simulate/send.
|
|
16
|
+
*/
|
|
17
|
+
export declare abstract class BaseContractInteraction {
|
|
18
|
+
protected rpc: AztecRPC;
|
|
19
|
+
protected tx?: Tx;
|
|
20
|
+
protected txRequest?: TxExecutionRequest;
|
|
21
|
+
constructor(rpc: AztecRPC);
|
|
22
|
+
/**
|
|
23
|
+
* Create a transaction execution request ready to be simulated.
|
|
24
|
+
* @param options - An optional object containing additional configuration for the transaction.
|
|
25
|
+
* @returns A transaction execution request.
|
|
26
|
+
*/
|
|
27
|
+
abstract create(options?: SendMethodOptions): Promise<TxExecutionRequest>;
|
|
28
|
+
/**
|
|
29
|
+
* Simulates a transaction execution request and returns a tx object ready to be sent.
|
|
30
|
+
* @param options - optional arguments to be used in the creation of the transaction
|
|
31
|
+
* @returns The resulting transaction
|
|
32
|
+
*/
|
|
33
|
+
simulate(options?: SendMethodOptions): Promise<Tx>;
|
|
34
|
+
/**
|
|
35
|
+
* Sends a transaction to the contract function with the specified options.
|
|
36
|
+
* This function throws an error if called on an unconstrained function.
|
|
37
|
+
* It creates and signs the transaction if necessary, and returns a SentTx instance,
|
|
38
|
+
* which can be used to track the transaction status, receipt, and events.
|
|
39
|
+
* @param options - An optional object containing 'from' property representing
|
|
40
|
+
* the AztecAddress of the sender. If not provided, the default address is used.
|
|
41
|
+
* @returns A SentTx instance for tracking the transaction status and information.
|
|
42
|
+
*/
|
|
43
|
+
send(options?: SendMethodOptions): SentTx;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=base_contract_interaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base_contract_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/base_contract_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;GAGG;AACH,8BAAsB,uBAAuB;IAI/B,SAAS,CAAC,GAAG,EAAE,QAAQ;IAHnC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAClB,SAAS,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;gBAEnB,GAAG,EAAE,QAAQ;IAEnC;;;;OAIG;aACa,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAEhF;;;;OAIG;IACU,QAAQ,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,EAAE,CAAC;IAMnE;;;;;;;;OAQG;IACI,IAAI,CAAC,OAAO,GAAE,iBAAsB;CAQ5C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { SentTx } from './sent_tx.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base class for an interaction with a contract, be it a deployment, a function call, or a batch.
|
|
4
|
+
* Implements the sequence create/simulate/send.
|
|
5
|
+
*/
|
|
6
|
+
export class BaseContractInteraction {
|
|
7
|
+
constructor(rpc) {
|
|
8
|
+
this.rpc = rpc;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Simulates a transaction execution request and returns a tx object ready to be sent.
|
|
12
|
+
* @param options - optional arguments to be used in the creation of the transaction
|
|
13
|
+
* @returns The resulting transaction
|
|
14
|
+
*/
|
|
15
|
+
async simulate(options = {}) {
|
|
16
|
+
const txRequest = this.txRequest ?? (await this.create(options));
|
|
17
|
+
this.tx = await this.rpc.simulateTx(txRequest, !options.skipPublicSimulation);
|
|
18
|
+
return this.tx;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Sends a transaction to the contract function with the specified options.
|
|
22
|
+
* This function throws an error if called on an unconstrained function.
|
|
23
|
+
* It creates and signs the transaction if necessary, and returns a SentTx instance,
|
|
24
|
+
* which can be used to track the transaction status, receipt, and events.
|
|
25
|
+
* @param options - An optional object containing 'from' property representing
|
|
26
|
+
* the AztecAddress of the sender. If not provided, the default address is used.
|
|
27
|
+
* @returns A SentTx instance for tracking the transaction status and information.
|
|
28
|
+
*/
|
|
29
|
+
send(options = {}) {
|
|
30
|
+
const promise = (async () => {
|
|
31
|
+
const tx = this.tx ?? (await this.simulate(options));
|
|
32
|
+
return this.rpc.sendTx(tx);
|
|
33
|
+
})();
|
|
34
|
+
return new SentTx(this.rpc, promise);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9jb250cmFjdF9pbnRlcmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXNlX2NvbnRyYWN0X2ludGVyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFhdEM7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQix1QkFBdUI7SUFJM0MsWUFBc0IsR0FBYTtRQUFiLFFBQUcsR0FBSCxHQUFHLENBQVU7SUFBRyxDQUFDO0lBU3ZDOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQTZCLEVBQUU7UUFDbkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM5RSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksSUFBSSxDQUFDLFVBQTZCLEVBQUU7UUFDekMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUMxQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsRUFBRSxDQUFDO1FBRUwsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FunctionCall, TxExecutionRequest, Wallet } from '../index.js';
|
|
2
|
+
import { BaseContractInteraction } from './base_contract_interaction.js';
|
|
3
|
+
/** A batch of function calls to be sent as a single transaction through a wallet. */
|
|
4
|
+
export declare class BatchCall extends BaseContractInteraction {
|
|
5
|
+
protected wallet: Wallet;
|
|
6
|
+
protected calls: FunctionCall[];
|
|
7
|
+
constructor(wallet: Wallet, calls: FunctionCall[]);
|
|
8
|
+
/**
|
|
9
|
+
* Create a transaction execution request that represents this batch, encoded and authenticated by the
|
|
10
|
+
* user's wallet, ready to be simulated.
|
|
11
|
+
* @returns A Promise that resolves to a transaction instance.
|
|
12
|
+
*/
|
|
13
|
+
create(): Promise<TxExecutionRequest>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=batch_call.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch_call.d.ts","sourceRoot":"","sources":["../../src/contract/batch_call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,qFAAqF;AACrF,qBAAa,SAAU,SAAQ,uBAAuB;IACxC,SAAS,CAAC,MAAM,EAAE,MAAM;IAAE,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE;gBAA/C,MAAM,EAAE,MAAM,EAAY,KAAK,EAAE,YAAY,EAAE;IAIrE;;;;OAIG;IACU,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAMnD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseContractInteraction } from './base_contract_interaction.js';
|
|
2
|
+
/** A batch of function calls to be sent as a single transaction through a wallet. */
|
|
3
|
+
export class BatchCall extends BaseContractInteraction {
|
|
4
|
+
constructor(wallet, calls) {
|
|
5
|
+
super(wallet);
|
|
6
|
+
this.wallet = wallet;
|
|
7
|
+
this.calls = calls;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Create a transaction execution request that represents this batch, encoded and authenticated by the
|
|
11
|
+
* user's wallet, ready to be simulated.
|
|
12
|
+
* @returns A Promise that resolves to a transaction instance.
|
|
13
|
+
*/
|
|
14
|
+
async create() {
|
|
15
|
+
if (!this.txRequest) {
|
|
16
|
+
this.txRequest = await this.wallet.createTxExecutionRequest(this.calls);
|
|
17
|
+
}
|
|
18
|
+
return this.txRequest;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfY2FsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXRjaF9jYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpFLHFGQUFxRjtBQUNyRixNQUFNLE9BQU8sU0FBVSxTQUFRLHVCQUF1QjtJQUNwRCxZQUFzQixNQUFjLEVBQVksS0FBcUI7UUFDbkUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRE0sV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFZLFVBQUssR0FBTCxLQUFLLENBQWdCO0lBRXJFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLE1BQU07UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pFO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ContractAbi } from '@aztec/foundation/abi';
|
|
2
|
+
/**
|
|
3
|
+
* Validates the given ContractAbi object by checking its functions and their parameters.
|
|
4
|
+
* Ensures that the ABI has at least one function, a constructor, valid bytecode, and correct parameter types.
|
|
5
|
+
* Throws an error if any inconsistency is detected during the validation process.
|
|
6
|
+
*
|
|
7
|
+
* @param abi - The ContractAbi object to be validated.
|
|
8
|
+
* @returns A boolean value indicating whether the ABI is valid or not.
|
|
9
|
+
*/
|
|
10
|
+
export declare function abiChecker(abi: ContractAbi): boolean;
|
|
11
|
+
//# sourceMappingURL=checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/contract/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,WAAW,EAAc,MAAM,uBAAuB,CAAC;AAQpF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,WA8B1C"}
|