@aztec/aztec.js 0.6.7 → 0.7.2
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/Dockerfile +15 -0
- package/package.json +6 -6
- package/src/abis/ecdsa_account_contract.json +2 -2
- package/src/abis/schnorr_account_contract.json +2 -2
- package/src/abis/schnorr_auth_witness_account_contract.json +542 -3
- package/src/abis/schnorr_single_key_account_contract.json +1 -1
- package/src/account/entrypoint/auth_witness_account_entrypoint.ts +41 -22
- package/src/account/entrypoint/entrypoint_payload.ts +1 -1
- package/src/account/entrypoint/index.ts +2 -10
- package/src/account/entrypoint/single_key_account_entrypoint.ts +2 -9
- package/src/account/entrypoint/stored_key_account_entrypoint.ts +2 -9
- package/src/aztec_rpc_client/wallet.ts +28 -13
- package/src/contract/base_contract_interaction.ts +0 -5
- package/src/contract/batch_call.ts +3 -4
- package/src/contract/contract.test.ts +2 -4
- package/src/contract/contract.ts +23 -0
- package/src/contract/contract_base.ts +14 -2
- package/src/contract/contract_function_interaction.ts +2 -3
- package/src/contract_deployer/contract_deployer.test.ts +1 -3
- package/src/contract_deployer/contract_deployer.ts +1 -1
- package/src/sandbox/index.ts +6 -19
- package/src/utils/account.ts +35 -79
- package/src/utils/cheat_codes.ts +3 -3
- package/.tsbuildinfo +0 -1
- package/dest/abis/ecdsa_account_contract.json +0 -160
- package/dest/abis/schnorr_account_contract.json +0 -148
- package/dest/abis/schnorr_auth_witness_account_contract.json +0 -104
- package/dest/abis/schnorr_single_key_account_contract.json +0 -103
- package/dest/account/account.d.ts +0 -72
- package/dest/account/account.d.ts.map +0 -1
- package/dest/account/account.js +0 -115
- 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/contract/ecdsa_account_contract.d.ts +0 -16
- package/dest/account/contract/ecdsa_account_contract.d.ts.map +0 -1
- package/dest/account/contract/ecdsa_account_contract.js +0 -24
- package/dest/account/contract/index.d.ts +0 -28
- package/dest/account/contract/index.d.ts.map +0 -1
- package/dest/account/contract/index.js +0 -6
- package/dest/account/contract/schnorr_account_contract.d.ts +0 -16
- package/dest/account/contract/schnorr_account_contract.d.ts.map +0 -1
- package/dest/account/contract/schnorr_account_contract.js +0 -25
- package/dest/account/contract/single_key_account_contract.d.ts +0 -16
- package/dest/account/contract/single_key_account_contract.d.ts.map +0 -1
- package/dest/account/contract/single_key_account_contract.js +0 -21
- package/dest/account/deploy_account_sent_tx.d.ts +0 -28
- package/dest/account/deploy_account_sent_tx.d.ts.map +0 -1
- package/dest/account/deploy_account_sent_tx.js +0 -29
- package/dest/account/entrypoint/auth_witness_account_entrypoint.d.ts +0 -51
- package/dest/account/entrypoint/auth_witness_account_entrypoint.d.ts.map +0 -1
- package/dest/account/entrypoint/auth_witness_account_entrypoint.js +0 -82
- package/dest/account/entrypoint/entrypoint_collection.d.ts +0 -26
- package/dest/account/entrypoint/entrypoint_collection.d.ts.map +0 -1
- package/dest/account/entrypoint/entrypoint_collection.js +0 -40
- package/dest/account/entrypoint/entrypoint_payload.d.ts +0 -28
- 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 -27
- package/dest/account/entrypoint/index.d.ts.map +0 -1
- package/dest/account/entrypoint/index.js +0 -8
- 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 -53
- 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 -50
- package/dest/account/index.d.ts +0 -50
- package/dest/account/index.d.ts.map +0 -1
- package/dest/account/index.js +0 -66
- package/dest/aztec_rpc_client/aztec_rpc_client.d.ts +0 -5
- 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 -96
- package/dest/aztec_rpc_client/wallet.d.ts.map +0 -1
- package/dest/aztec_rpc_client/wallet.js +0 -167
- package/dest/contract/base_contract_interaction.d.ts +0 -50
- package/dest/contract/base_contract_interaction.d.ts.map +0 -1
- package/dest/contract/base_contract_interaction.js +0 -37
- package/dest/contract/batch_call.d.ts +0 -16
- package/dest/contract/batch_call.d.ts.map +0 -1
- package/dest/contract/batch_call.js +0 -22
- package/dest/contract/checker.d.ts +0 -11
- package/dest/contract/checker.d.ts.map +0 -1
- package/dest/contract/checker.js +0 -98
- package/dest/contract/checker.test.d.ts +0 -2
- package/dest/contract/checker.test.d.ts.map +0 -1
- package/dest/contract/checker.test.js +0 -168
- package/dest/contract/contract.d.ts +0 -22
- package/dest/contract/contract.d.ts.map +0 -1
- package/dest/contract/contract.js +0 -25
- package/dest/contract/contract.test.d.ts +0 -2
- package/dest/contract/contract.test.d.ts.map +0 -1
- package/dest/contract/contract.test.js +0 -143
- package/dest/contract/contract_base.d.ts +0 -63
- package/dest/contract/contract_base.d.ts.map +0 -1
- package/dest/contract/contract_base.js +0 -63
- package/dest/contract/contract_function_interaction.d.ts +0 -50
- package/dest/contract/contract_function_interaction.d.ts.map +0 -1
- package/dest/contract/contract_function_interaction.js +0 -60
- package/dest/contract/index.d.ts +0 -6
- package/dest/contract/index.d.ts.map +0 -1
- package/dest/contract/index.js +0 -6
- package/dest/contract/sent_tx.d.ts +0 -58
- package/dest/contract/sent_tx.d.ts.map +0 -1
- package/dest/contract/sent_tx.js +0 -86
- package/dest/contract/sent_tx.test.d.ts +0 -2
- package/dest/contract/sent_tx.test.d.ts.map +0 -1
- package/dest/contract/sent_tx.test.js +0 -42
- package/dest/contract_deployer/contract_deployer.d.ts +0 -25
- package/dest/contract_deployer/contract_deployer.d.ts.map +0 -1
- package/dest/contract_deployer/contract_deployer.js +0 -26
- package/dest/contract_deployer/contract_deployer.test.d.ts +0 -2
- package/dest/contract_deployer/contract_deployer.test.d.ts.map +0 -1
- package/dest/contract_deployer/contract_deployer.test.js +0 -48
- package/dest/contract_deployer/deploy_method.d.ts +0 -63
- package/dest/contract_deployer/deploy_method.d.ts.map +0 -1
- package/dest/contract_deployer/deploy_method.js +0 -80
- package/dest/contract_deployer/deploy_sent_tx.d.ts +0 -35
- package/dest/contract_deployer/deploy_sent_tx.d.ts.map +0 -1
- package/dest/contract_deployer/deploy_sent_tx.js +0 -39
- package/dest/contract_deployer/index.d.ts +0 -2
- package/dest/contract_deployer/index.d.ts.map +0 -1
- package/dest/contract_deployer/index.js +0 -2
- package/dest/index.d.ts +0 -13
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -13
- package/dest/main.js +0 -2
- package/dest/main.js.LICENSE.txt +0 -10
- package/dest/sandbox/index.d.ts +0 -116
- package/dest/sandbox/index.d.ts.map +0 -1
- package/dest/sandbox/index.js +0 -75
- package/dest/utils/abi_types.d.ts +0 -7
- package/dest/utils/abi_types.d.ts.map +0 -1
- package/dest/utils/abi_types.js +0 -2
- package/dest/utils/account.d.ts +0 -20
- package/dest/utils/account.d.ts.map +0 -1
- package/dest/utils/account.js +0 -61
- package/dest/utils/cheat_codes.d.ts +0 -199
- package/dest/utils/cheat_codes.d.ts.map +0 -1
- package/dest/utils/cheat_codes.js +0 -279
- package/dest/utils/defaults.d.ts +0 -5
- package/dest/utils/defaults.d.ts.map +0 -1
- package/dest/utils/defaults.js +0 -5
- package/dest/utils/index.d.ts +0 -8
- package/dest/utils/index.d.ts.map +0 -1
- package/dest/utils/index.js +0 -8
- package/dest/utils/l1_contracts.d.ts +0 -32
- package/dest/utils/l1_contracts.d.ts.map +0 -1
- package/dest/utils/l1_contracts.js +0 -16
- package/dest/utils/l2_contracts.d.ts +0 -10
- package/dest/utils/l2_contracts.d.ts.map +0 -1
- package/dest/utils/l2_contracts.js +0 -10
- package/dest/utils/pub_key.d.ts +0 -8
- package/dest/utils/pub_key.d.ts.map +0 -1
- package/dest/utils/pub_key.js +0 -11
- package/dest/utils/secrets.d.ts +0 -8
- package/dest/utils/secrets.d.ts.map +0 -1
- package/dest/utils/secrets.js +0 -12
- package/src/account/entrypoint/entrypoint_collection.ts +0 -51
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { CircuitsWasm, Fr, TxContext } from '@aztec/circuits.js';
|
|
2
|
-
import { PackedArguments, TxExecutionRequest, } from '@aztec/types';
|
|
3
|
-
/**
|
|
4
|
-
* A base class for Wallet implementations
|
|
5
|
-
*/
|
|
6
|
-
export class BaseWallet {
|
|
7
|
-
constructor(rpc) {
|
|
8
|
-
this.rpc = rpc;
|
|
9
|
-
}
|
|
10
|
-
registerAccount(privKey, partialAddress) {
|
|
11
|
-
return this.rpc.registerAccount(privKey, partialAddress);
|
|
12
|
-
}
|
|
13
|
-
registerRecipient(account) {
|
|
14
|
-
return this.rpc.registerRecipient(account);
|
|
15
|
-
}
|
|
16
|
-
getAccounts() {
|
|
17
|
-
return this.rpc.getAccounts();
|
|
18
|
-
}
|
|
19
|
-
getAccount(address) {
|
|
20
|
-
return this.rpc.getAccount(address);
|
|
21
|
-
}
|
|
22
|
-
getRecipients() {
|
|
23
|
-
return this.rpc.getRecipients();
|
|
24
|
-
}
|
|
25
|
-
getRecipient(address) {
|
|
26
|
-
return this.rpc.getRecipient(address);
|
|
27
|
-
}
|
|
28
|
-
addContracts(contracts) {
|
|
29
|
-
return this.rpc.addContracts(contracts);
|
|
30
|
-
}
|
|
31
|
-
getContracts() {
|
|
32
|
-
return this.rpc.getContracts();
|
|
33
|
-
}
|
|
34
|
-
simulateTx(txRequest, simulatePublic) {
|
|
35
|
-
return this.rpc.simulateTx(txRequest, simulatePublic);
|
|
36
|
-
}
|
|
37
|
-
sendTx(tx) {
|
|
38
|
-
return this.rpc.sendTx(tx);
|
|
39
|
-
}
|
|
40
|
-
getTxReceipt(txHash) {
|
|
41
|
-
return this.rpc.getTxReceipt(txHash);
|
|
42
|
-
}
|
|
43
|
-
getPrivateStorageAt(owner, contract, storageSlot) {
|
|
44
|
-
return this.rpc.getPrivateStorageAt(owner, contract, storageSlot);
|
|
45
|
-
}
|
|
46
|
-
getPublicStorageAt(contract, storageSlot) {
|
|
47
|
-
return this.rpc.getPublicStorageAt(contract, storageSlot);
|
|
48
|
-
}
|
|
49
|
-
viewTx(functionName, args, to, from) {
|
|
50
|
-
return this.rpc.viewTx(functionName, args, to, from);
|
|
51
|
-
}
|
|
52
|
-
getExtendedContractData(contractAddress) {
|
|
53
|
-
return this.rpc.getExtendedContractData(contractAddress);
|
|
54
|
-
}
|
|
55
|
-
getContractData(contractAddress) {
|
|
56
|
-
return this.rpc.getContractData(contractAddress);
|
|
57
|
-
}
|
|
58
|
-
getUnencryptedLogs(from, limit) {
|
|
59
|
-
return this.rpc.getUnencryptedLogs(from, limit);
|
|
60
|
-
}
|
|
61
|
-
getBlockNumber() {
|
|
62
|
-
return this.rpc.getBlockNumber();
|
|
63
|
-
}
|
|
64
|
-
getNodeInfo() {
|
|
65
|
-
return this.rpc.getNodeInfo();
|
|
66
|
-
}
|
|
67
|
-
isGlobalStateSynchronised() {
|
|
68
|
-
return this.rpc.isGlobalStateSynchronised();
|
|
69
|
-
}
|
|
70
|
-
isAccountStateSynchronised(account) {
|
|
71
|
-
return this.rpc.isAccountStateSynchronised(account);
|
|
72
|
-
}
|
|
73
|
-
getSyncStatus() {
|
|
74
|
-
return this.rpc.getSyncStatus();
|
|
75
|
-
}
|
|
76
|
-
addAuthWitness(messageHash, witness) {
|
|
77
|
-
return this.rpc.addAuthWitness(messageHash, witness);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* A simple wallet implementation that forwards authentication requests to a provided entrypoint implementation.
|
|
82
|
-
*/
|
|
83
|
-
export class EntrypointWallet extends BaseWallet {
|
|
84
|
-
constructor(rpc, accountImpl) {
|
|
85
|
-
super(rpc);
|
|
86
|
-
this.accountImpl = accountImpl;
|
|
87
|
-
}
|
|
88
|
-
createTxExecutionRequest(executions, opts = {}) {
|
|
89
|
-
return this.accountImpl.createTxExecutionRequest(executions, opts);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* A wallet implementation supporting auth witnesses.
|
|
94
|
-
* This wallet inserts eip1271-like witnesses into the RPC, which are then fetched using an oracle
|
|
95
|
-
* to provide authentication data to the contract during execution.
|
|
96
|
-
*/
|
|
97
|
-
export class AuthWitnessEntrypointWallet extends BaseWallet {
|
|
98
|
-
constructor(rpc, accountImpl) {
|
|
99
|
-
super(rpc);
|
|
100
|
-
this.accountImpl = accountImpl;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Create a transaction request and add the auth witness to the RPC.
|
|
104
|
-
* Note: When used in simulations, the witness that is inserted could be used later by attacker with
|
|
105
|
-
* access to the RPC.
|
|
106
|
-
* Meaning that if you were to use someone elses rpc with db you could send these transactions.
|
|
107
|
-
* For simulations it would be desirable to bypass such that no data is generated.
|
|
108
|
-
*
|
|
109
|
-
* @param executions - The function calls to execute.
|
|
110
|
-
* @param opts - The options.
|
|
111
|
-
* @returns - The TxRequest
|
|
112
|
-
*/
|
|
113
|
-
async createTxExecutionRequest(executions, opts = {}) {
|
|
114
|
-
const { txRequest, message, witness } = await this.accountImpl.createTxExecutionRequestWithWitness(executions, opts);
|
|
115
|
-
await this.rpc.addAuthWitness(Fr.fromBuffer(message), witness);
|
|
116
|
-
return txRequest;
|
|
117
|
-
}
|
|
118
|
-
sign(messageHash) {
|
|
119
|
-
return Promise.resolve(this.accountImpl.sign(messageHash));
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Signs the `messageHash` and adds the witness to the RPC.
|
|
123
|
-
* This is useful for signing messages that are not directly part of the transaction payload, such as
|
|
124
|
-
* approvals .
|
|
125
|
-
* @param messageHash - The message hash to sign
|
|
126
|
-
*/
|
|
127
|
-
async signAndAddAuthWitness(messageHash) {
|
|
128
|
-
const witness = await this.accountImpl.createAuthWitness(messageHash);
|
|
129
|
-
await this.rpc.addAuthWitness(Fr.fromBuffer(messageHash), witness);
|
|
130
|
-
return Promise.resolve();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* A wallet implementation that forwards authentication requests to a provided account.
|
|
135
|
-
*/
|
|
136
|
-
export class AccountWallet extends EntrypointWallet {
|
|
137
|
-
constructor(rpc, accountImpl, address) {
|
|
138
|
-
super(rpc, accountImpl);
|
|
139
|
-
this.accountImpl = accountImpl;
|
|
140
|
-
this.address = address;
|
|
141
|
-
}
|
|
142
|
-
/** Returns the complete address of the account that implements this wallet. */
|
|
143
|
-
getCompleteAddress() {
|
|
144
|
-
return this.address;
|
|
145
|
-
}
|
|
146
|
-
/** Returns the address of the account that implements this wallet. */
|
|
147
|
-
getAddress() {
|
|
148
|
-
return this.address.address;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Wallet implementation which creates a transaction request directly to the requested contract without any signing.
|
|
153
|
-
*/
|
|
154
|
-
export class SignerlessWallet extends BaseWallet {
|
|
155
|
-
async createTxExecutionRequest(executions) {
|
|
156
|
-
if (executions.length !== 1) {
|
|
157
|
-
throw new Error(`Unexpected number of executions. Expected 1, received ${executions.length})`);
|
|
158
|
-
}
|
|
159
|
-
const [execution] = executions;
|
|
160
|
-
const wasm = await CircuitsWasm.get();
|
|
161
|
-
const packedArguments = await PackedArguments.fromArgs(execution.args, wasm);
|
|
162
|
-
const { chainId, version } = await this.rpc.getNodeInfo();
|
|
163
|
-
const txContext = TxContext.empty(chainId, version);
|
|
164
|
-
return Promise.resolve(new TxExecutionRequest(execution.to, execution.functionData, packedArguments.hash, txContext, [packedArguments]));
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F6dGVjX3JwY19jbGllbnQvd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLEVBQUUsRUFBc0MsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkgsT0FBTyxFQVNMLGVBQWUsRUFHZixrQkFBa0IsR0FHbkIsTUFBTSxjQUFjLENBQUM7QUFVdEI7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLFVBQVU7SUFDOUIsWUFBK0IsR0FBYTtRQUFiLFFBQUcsR0FBSCxHQUFHLENBQVU7SUFBRyxDQUFDO0lBSWhELGVBQWUsQ0FBQyxPQUEyQixFQUFFLGNBQThCO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxPQUF3QjtRQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxZQUFZLENBQUMsT0FBcUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsWUFBWSxDQUFDLFNBQTZCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FB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
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { AztecAddress } from '@aztec/circuits.js';
|
|
2
|
-
import { AztecRPC, Tx, TxExecutionRequest } from '@aztec/types';
|
|
3
|
-
import { SentTx } from './sent_tx.js';
|
|
4
|
-
/**
|
|
5
|
-
* Represents options for calling a (constrained) function in a contract.
|
|
6
|
-
* Allows the user to specify the sender address and nonce for a transaction.
|
|
7
|
-
*/
|
|
8
|
-
export interface SendMethodOptions {
|
|
9
|
-
/**
|
|
10
|
-
* Sender's address initiating the transaction.
|
|
11
|
-
*/
|
|
12
|
-
origin?: AztecAddress;
|
|
13
|
-
/**
|
|
14
|
-
* Wether to skip the simulation of the public part of the transaction.
|
|
15
|
-
*/
|
|
16
|
-
skipPublicSimulation?: boolean;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Base class for an interaction with a contract, be it a deployment, a function call, or a batch.
|
|
20
|
-
* Implements the sequence create/simulate/send.
|
|
21
|
-
*/
|
|
22
|
-
export declare abstract class BaseContractInteraction {
|
|
23
|
-
protected rpc: AztecRPC;
|
|
24
|
-
protected tx?: Tx;
|
|
25
|
-
protected txRequest?: TxExecutionRequest;
|
|
26
|
-
constructor(rpc: AztecRPC);
|
|
27
|
-
/**
|
|
28
|
-
* Create a transaction execution request ready to be simulated.
|
|
29
|
-
* @param options - An optional object containing additional configuration for the transaction.
|
|
30
|
-
* @returns A transaction execution request.
|
|
31
|
-
*/
|
|
32
|
-
abstract create(options?: SendMethodOptions): Promise<TxExecutionRequest>;
|
|
33
|
-
/**
|
|
34
|
-
* Simulates a transaction execution request and returns a tx object ready to be sent.
|
|
35
|
-
* @param options - optional arguments to be used in the creation of the transaction
|
|
36
|
-
* @returns The resulting transaction
|
|
37
|
-
*/
|
|
38
|
-
simulate(options?: SendMethodOptions): Promise<Tx>;
|
|
39
|
-
/**
|
|
40
|
-
* Sends a transaction to the contract function with the specified options.
|
|
41
|
-
* This function throws an error if called on an unconstrained function.
|
|
42
|
-
* It creates and signs the transaction if necessary, and returns a SentTx instance,
|
|
43
|
-
* which can be used to track the transaction status, receipt, and events.
|
|
44
|
-
* @param options - An optional object containing 'from' property representing
|
|
45
|
-
* the AztecAddress of the sender. If not provided, the default address is used.
|
|
46
|
-
* @returns A SentTx instance for tracking the transaction status and information.
|
|
47
|
-
*/
|
|
48
|
-
send(options?: SendMethodOptions): SentTx;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=base_contract_interaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base_contract_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/base_contract_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,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,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9jb250cmFjdF9pbnRlcmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXNlX2NvbnRyYWN0X2ludGVyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFpQnRDOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsdUJBQXVCO0lBSTNDLFlBQXNCLEdBQWE7UUFBYixRQUFHLEdBQUgsR0FBRyxDQUFVO0lBQUcsQ0FBQztJQVN2Qzs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUE2QixFQUFFO1FBQ25ELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDOUUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLElBQUksQ0FBQyxVQUE2QixFQUFFO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDMUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVMLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YifQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { FunctionCall, TxExecutionRequest, Wallet } from '../index.js';
|
|
2
|
-
import { BaseContractInteraction, SendMethodOptions } 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
|
-
* @param options - An optional object containing additional configuration for the transaction.
|
|
12
|
-
* @returns A Promise that resolves to a transaction instance.
|
|
13
|
-
*/
|
|
14
|
-
create(options?: SendMethodOptions | undefined): Promise<TxExecutionRequest>;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=batch_call.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAE5F,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;;;;;OAKG;IACU,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAM1F"}
|
|
@@ -1,22 +0,0 @@
|
|
|
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
|
-
* @param options - An optional object containing additional configuration for the transaction.
|
|
13
|
-
* @returns A Promise that resolves to a transaction instance.
|
|
14
|
-
*/
|
|
15
|
-
async create(options) {
|
|
16
|
-
if (!this.txRequest) {
|
|
17
|
-
this.txRequest = await this.wallet.createTxExecutionRequest(this.calls, options);
|
|
18
|
-
}
|
|
19
|
-
return this.txRequest;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfY2FsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXRjaF9jYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU1RixxRkFBcUY7QUFDckYsTUFBTSxPQUFPLFNBQVUsU0FBUSx1QkFBdUI7SUFDcEQsWUFBc0IsTUFBYyxFQUFZLEtBQXFCO1FBQ25FLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQURNLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBWSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUVyRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQXVDO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDbEY7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztDQUNGIn0=
|
|
@@ -1,11 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dest/contract/checker.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validates the given ContractAbi object by checking its functions and their parameters.
|
|
3
|
-
* Ensures that the ABI has at least one function, a constructor, valid bytecode, and correct parameter types.
|
|
4
|
-
* Throws an error if any inconsistency is detected during the validation process.
|
|
5
|
-
*
|
|
6
|
-
* @param abi - The ContractAbi object to be validated.
|
|
7
|
-
* @returns A boolean value indicating whether the ABI is valid or not.
|
|
8
|
-
*/
|
|
9
|
-
export function abiChecker(abi) {
|
|
10
|
-
if (!abi.functions || abi.functions.length === 0) {
|
|
11
|
-
throw new Error('ABI has no functions');
|
|
12
|
-
}
|
|
13
|
-
abi.functions.forEach(func => {
|
|
14
|
-
if (!('name' in func && typeof func.name === 'string' && func.name.length > 0)) {
|
|
15
|
-
throw new Error('ABI function has no name');
|
|
16
|
-
}
|
|
17
|
-
// TODO: implement a better check for bytecode (right now only checks if it's > 0)
|
|
18
|
-
if (!('bytecode' in func && typeof func.bytecode === 'string' && func.bytecode.length > 0)) {
|
|
19
|
-
throw new Error('ABI function parameter has incorrect bytecode');
|
|
20
|
-
}
|
|
21
|
-
func.parameters.forEach(param => {
|
|
22
|
-
if (!param.type) {
|
|
23
|
-
throw new Error('ABI function parameter has no type');
|
|
24
|
-
}
|
|
25
|
-
abiParameterTypeChecker(param.type);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
// TODO: implement a better check for constructor (right now only checks if it has it or not)
|
|
29
|
-
if (!abi.functions.find(func => func.name === 'constructor')) {
|
|
30
|
-
throw new Error('ABI has no constructor');
|
|
31
|
-
}
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Validates the ABI function parameter's type by checking its kind and attributes.
|
|
36
|
-
* Throws an error if the type has an unrecognized kind or incorrectly formed attributes.
|
|
37
|
-
* Additionally, checks nested types for array and struct kinds.
|
|
38
|
-
*
|
|
39
|
-
* @param type - The ABIType object representing the type of the ABI function parameter.
|
|
40
|
-
* @returns A boolean value indicating whether the type is valid or not.
|
|
41
|
-
*/
|
|
42
|
-
function abiParameterTypeChecker(type) {
|
|
43
|
-
switch (type.kind) {
|
|
44
|
-
case 'field':
|
|
45
|
-
case 'boolean':
|
|
46
|
-
return checkAttributes(type, {});
|
|
47
|
-
case 'integer':
|
|
48
|
-
return checkAttributes(type, { sign: 'string', width: 'number' });
|
|
49
|
-
case 'string':
|
|
50
|
-
return checkAttributes(type, { length: 'number' });
|
|
51
|
-
case 'array':
|
|
52
|
-
return checkAttributes(type, { length: 'number', type: 'object' }) && abiParameterTypeChecker(type.type);
|
|
53
|
-
case 'struct':
|
|
54
|
-
return checkAttributes(type, { fields: 'object' }) && checkStruct(type);
|
|
55
|
-
default:
|
|
56
|
-
throw new Error('ABI function parameter has an unrecognised type');
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Check if the structure of the ABIType 'struct' is valid by ensuring field names are strings
|
|
61
|
-
* and their type attribute passes the abiParameterTypeChecker. Returns true on successful validation,
|
|
62
|
-
* otherwise throws an error providing insight into the incorrect formation in the struct.
|
|
63
|
-
*
|
|
64
|
-
* @param type - The StructType object containing an array of fields to validate.
|
|
65
|
-
* @returns A boolean value indicating successful validation of the struct's fields.
|
|
66
|
-
*/
|
|
67
|
-
function checkStruct(type) {
|
|
68
|
-
return type.fields.reduce((acc, field) => {
|
|
69
|
-
if (!('name' in field && typeof field.name === 'string')) {
|
|
70
|
-
throw new Error('ABI function parameter has an incorrectly formed struct');
|
|
71
|
-
}
|
|
72
|
-
return acc && abiParameterTypeChecker(field.type);
|
|
73
|
-
}, true);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Check if a provided ABI type has the correct attributes and their associated types.
|
|
77
|
-
* This function compares the given 'type' object's keys with the expected attribute types
|
|
78
|
-
* specified in 'incompleteAttributes', as well as the required 'kind' property.
|
|
79
|
-
* Throws an error if there are any unrecognised attributes or incorrect attribute types.
|
|
80
|
-
*
|
|
81
|
-
* @param type - The ABI type object to be checked for correct attributes.
|
|
82
|
-
* @param incompleteAttributes - An object representing the expected attribute types without the 'kind' property.
|
|
83
|
-
* @returns Returns true if the provided ABI type has the correct attributes and their associated types, otherwise throws an error.
|
|
84
|
-
*/
|
|
85
|
-
function checkAttributes(type, incompleteAttributes) {
|
|
86
|
-
const typeKeys = Object.keys(type);
|
|
87
|
-
const attributes = { ...incompleteAttributes, kind: 'string' };
|
|
88
|
-
if (typeKeys.length !== Object.keys(attributes).length) {
|
|
89
|
-
throw new Error(`Unrecognised attribute on type ${type.kind}`);
|
|
90
|
-
}
|
|
91
|
-
typeKeys.forEach(element => {
|
|
92
|
-
if (!(element in type && typeof type[element] === attributes[element])) {
|
|
93
|
-
throw new Error(`ABI function parameter has an incorrectly formed ${type.kind}`);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQWdCO0lBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7S0FDekM7SUFFRCxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMzQixJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDOUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsa0ZBQWtGO1FBQ2xGLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtZQUMxRixNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDZixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7YUFDdkQ7WUFFRCx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENB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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checker.test.d.ts","sourceRoot":"","sources":["../../src/contract/checker.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { abiChecker } from './checker.js';
|
|
2
|
-
describe('abiChecker', () => {
|
|
3
|
-
let abi;
|
|
4
|
-
it('should throw an error if it has no functions', () => {
|
|
5
|
-
abi = {
|
|
6
|
-
name: 'TEST_ABI',
|
|
7
|
-
};
|
|
8
|
-
expect(() => abiChecker(abi)).toThrowError('ABI has no functions');
|
|
9
|
-
abi = {
|
|
10
|
-
name: 'TEST_ABI',
|
|
11
|
-
functions: [],
|
|
12
|
-
};
|
|
13
|
-
expect(() => abiChecker(abi)).toThrowError('ABI has no functions');
|
|
14
|
-
});
|
|
15
|
-
it('should error if ABI has no names', () => {
|
|
16
|
-
abi = {
|
|
17
|
-
name: 'TEST_ABI',
|
|
18
|
-
functions: [{ bytecode: '0af', parameters: [{ type: { kind: 'test' } }] }],
|
|
19
|
-
};
|
|
20
|
-
expect(() => abiChecker(abi)).toThrowError('ABI function has no name');
|
|
21
|
-
});
|
|
22
|
-
it('should error if ABI function has unrecognised type', () => {
|
|
23
|
-
abi = {
|
|
24
|
-
name: 'TEST_ABI',
|
|
25
|
-
functions: [
|
|
26
|
-
{
|
|
27
|
-
name: 'Function name',
|
|
28
|
-
bytecode: '0af',
|
|
29
|
-
parameters: [{ type: { kind: 'test' } }],
|
|
30
|
-
},
|
|
31
|
-
],
|
|
32
|
-
};
|
|
33
|
-
expect(() => abiChecker(abi)).toThrowError('ABI function parameter has an unrecognised type');
|
|
34
|
-
});
|
|
35
|
-
it('should error if integer is incorrectly formed', () => {
|
|
36
|
-
abi = {
|
|
37
|
-
name: 'TEST_ABI',
|
|
38
|
-
functions: [
|
|
39
|
-
{
|
|
40
|
-
name: 'constructor',
|
|
41
|
-
bytecode: '0af',
|
|
42
|
-
parameters: [{ type: { kind: 'integer', sign: 5 } }],
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
};
|
|
46
|
-
expect(() => abiChecker(abi)).toThrowError('Unrecognised attribute on type integer');
|
|
47
|
-
});
|
|
48
|
-
it('should error if string is incorrectly formed', () => {
|
|
49
|
-
abi = {
|
|
50
|
-
name: 'TEST_ABI',
|
|
51
|
-
functions: [
|
|
52
|
-
{
|
|
53
|
-
name: 'constructor',
|
|
54
|
-
bytecode: '0af',
|
|
55
|
-
parameters: [{ type: { kind: 'string', sign: 5, additionalParam: true } }],
|
|
56
|
-
},
|
|
57
|
-
],
|
|
58
|
-
};
|
|
59
|
-
expect(() => abiChecker(abi)).toThrowError('Unrecognised attribute on type string');
|
|
60
|
-
});
|
|
61
|
-
it('should error if struct is incorrectly formed', () => {
|
|
62
|
-
abi = {
|
|
63
|
-
name: 'TEST_ABI',
|
|
64
|
-
functions: [
|
|
65
|
-
{
|
|
66
|
-
name: 'constructor',
|
|
67
|
-
bytecode: '0af',
|
|
68
|
-
parameters: [
|
|
69
|
-
{
|
|
70
|
-
type: {
|
|
71
|
-
kind: 'struct',
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
],
|
|
75
|
-
},
|
|
76
|
-
],
|
|
77
|
-
};
|
|
78
|
-
expect(() => abiChecker(abi)).toThrowError('Unrecognised attribute on type struct');
|
|
79
|
-
});
|
|
80
|
-
it('should error if array is incorrectly formed', () => {
|
|
81
|
-
abi = {
|
|
82
|
-
name: 'TEST_ABI',
|
|
83
|
-
functions: [
|
|
84
|
-
{
|
|
85
|
-
name: 'constructor',
|
|
86
|
-
bytecode: '0af',
|
|
87
|
-
parameters: [
|
|
88
|
-
{
|
|
89
|
-
type: {
|
|
90
|
-
kind: 'array',
|
|
91
|
-
length: 5,
|
|
92
|
-
type: {
|
|
93
|
-
kind: 'array',
|
|
94
|
-
length: '5',
|
|
95
|
-
type: {
|
|
96
|
-
sign: 'value',
|
|
97
|
-
width: 5,
|
|
98
|
-
kind: 'integer',
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
],
|
|
104
|
-
},
|
|
105
|
-
],
|
|
106
|
-
};
|
|
107
|
-
expect(() => abiChecker(abi)).toThrowError('ABI function parameter has an incorrectly formed array');
|
|
108
|
-
});
|
|
109
|
-
it('valid matrix should pass checker', () => {
|
|
110
|
-
abi = {
|
|
111
|
-
name: 'TEST_ABI',
|
|
112
|
-
functions: [
|
|
113
|
-
{
|
|
114
|
-
name: 'constructor',
|
|
115
|
-
bytecode: '0af',
|
|
116
|
-
parameters: [
|
|
117
|
-
{
|
|
118
|
-
type: {
|
|
119
|
-
kind: 'array',
|
|
120
|
-
length: 5,
|
|
121
|
-
type: {
|
|
122
|
-
kind: 'array',
|
|
123
|
-
length: 5,
|
|
124
|
-
type: {
|
|
125
|
-
sign: 'value',
|
|
126
|
-
width: 5,
|
|
127
|
-
kind: 'integer',
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
},
|
|
132
|
-
],
|
|
133
|
-
},
|
|
134
|
-
],
|
|
135
|
-
};
|
|
136
|
-
expect(abiChecker(abi)).toBe(true);
|
|
137
|
-
});
|
|
138
|
-
it('valid struct should pass checker', () => {
|
|
139
|
-
abi = {
|
|
140
|
-
name: 'TEST_ABI',
|
|
141
|
-
functions: [
|
|
142
|
-
{
|
|
143
|
-
name: 'constructor',
|
|
144
|
-
bytecode: '0af',
|
|
145
|
-
parameters: [
|
|
146
|
-
{
|
|
147
|
-
type: {
|
|
148
|
-
kind: 'struct',
|
|
149
|
-
fields: [
|
|
150
|
-
{
|
|
151
|
-
name: 'name',
|
|
152
|
-
type: {
|
|
153
|
-
sign: 'value',
|
|
154
|
-
width: 5,
|
|
155
|
-
kind: 'integer',
|
|
156
|
-
},
|
|
157
|
-
},
|
|
158
|
-
],
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
|
-
],
|
|
162
|
-
},
|
|
163
|
-
],
|
|
164
|
-
};
|
|
165
|
-
expect(abiChecker(abi)).toBe(true);
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2NoZWNrZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQzFCLElBQUksR0FBUSxDQUFDO0lBRWIsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtRQUN0RCxHQUFHLEdBQUc7WUFDSixJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDO1FBQ0YsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ25FLEdBQUcsR0FBRztZQUNKLElBQUksRUFBRSxVQUFVO1lBQ2hCLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQUNGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDMUMsR0FBRyxHQUFHO1lBQ0osSUFBSSxFQUFFLFVBQVU7WUFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1NBQzNFLENBQUM7UUFDRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDekUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsb0RBQW9ELEVBQUUsR0FBRyxFQUFFO1FBQzVELEdBQUcsR0FBRztZQUNKLElBQUksRUFBRSxVQUFVO1lBQ2hCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxJQUFJLEVBQUUsZUFBZTtvQkFDckIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztpQkFDekM7YUFDRjtTQUNGLENBQUM7UUFDRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFDaEcsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsK0NBQStDLEVBQUUsR0FBRyxFQUFFO1FBQ3ZELEdBQUcsR0FBRztZQUNKLElBQUksRUFBRSxVQUFVO1lBQ2hCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2lCQUNyRDthQUNGO1NBQ0YsQ0FBQztRQUNGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsd0NBQXdDLENBQUMsQ0FBQztJQUN2RixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsR0FBRyxHQUFHO1lBQ0osSUFBSSxFQUFFLFVBQVU7WUFDaEIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLElBQUksRUFBRSxhQUFhO29CQUNuQixRQUFRLEVBQUUsS0FBSztvQkFDZixVQUFVLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztpQkFDM0U7YUFDRjtTQUNGLENBQUM7UUFDRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDdEYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1FBQ3RELEdBQUcsR0FBRztZQUNKLElBQUksRUFBRSxVQUFVO1lBQ2hCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsVUFBVSxFQUFFO3dCQUNWOzRCQUNFLElBQUksRUFBRTtnQ0FDSixJQUFJLEVBQUUsUUFBUTs2QkFDZjt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztRQUNGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUN0RixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxHQUFHLEVBQUU7UUFDckQsR0FBRyxHQUFHO1lBQ0osSUFBSSxFQUFFLFVBQVU7WUFDaEIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLElBQUksRUFBRSxhQUFhO29CQUNuQixRQUFRLEVBQUUsS0FBSztvQkFDZixVQUFVLEVBQUU7d0JBQ1Y7NEJBQ0UsSUFBSSxFQUFFO2dDQUNKLElBQUksRUFBRSxPQUFPO2dDQUNiLE1BQU0sRUFBRSxDQUFDO2dDQUNULElBQUksRUFBRTtvQ0FDSixJQUFJLEVBQUUsT0FBTztvQ0FDYixNQUFNLEVBQUUsR0FBRztvQ0FDWCxJQUFJLEVBQUU7d0NBQ0osSUFBSSxFQUFFLE9BQU87d0NBQ2IsS0FBSyxFQUFFLENBQUM7d0NBQ1IsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO2lDQUNGOzZCQUNGO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQ3ZHLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUMxQyxHQUFHLEdBQUc7WUFDSixJQUFJLEVBQUUsVUFBVTtZQUNoQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLFFBQVEsRUFBRSxLQUFLO29CQUNmLFVBQVUsRUFBRTt3QkFDVjs0QkFDRSxJQUFJLEVBQUU7Z0NBQ0osSUFBSSxFQUFFLE9BQU87Z0NBQ2IsTUFBTSxFQUFFLENBQUM7Z0NBQ1QsSUFBSSxFQUFFO29DQUNKLElBQUksRUFBRSxPQUFPO29DQUNiLE1BQU0sRUFBRSxDQUFDO29DQUNULElBQUksRUFBRTt3Q0FDSixJQUFJLEVBQUUsT0FBTzt3Q0FDYixLQUFLLEVBQUUsQ0FBQzt3Q0FDUixJQUFJLEVBQUUsU0FBUztxQ0FDaEI7aUNBQ0Y7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7UUFDRixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUMxQyxHQUFHLEdBQUc7WUFDSixJQUFJLEVBQUUsVUFBVTtZQUNoQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLFFBQVEsRUFBRSxLQUFLO29CQUNmLFVBQVUsRUFBRTt3QkFDVjs0QkFDRSxJQUFJLEVBQUU7Z0NBQ0osSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsTUFBTSxFQUFFO29DQUNOO3dDQUNFLElBQUksRUFBRSxNQUFNO3dDQUNaLElBQUksRUFBRTs0Q0FDSixJQUFJLEVBQUUsT0FBTzs0Q0FDYixLQUFLLEVBQUUsQ0FBQzs0Q0FDUixJQUFJLEVBQUUsU0FBUzt5Q0FDaEI7cUNBQ0Y7aUNBQ0Y7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7UUFDRixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ContractAbi } from '@aztec/foundation/abi';
|
|
2
|
-
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
3
|
-
import { Wallet } from '../aztec_rpc_client/wallet.js';
|
|
4
|
-
import { ContractBase } from './contract_base.js';
|
|
5
|
-
/**
|
|
6
|
-
* The Contract class represents a contract and provides utility methods for interacting with it.
|
|
7
|
-
* It enables the creation of ContractFunctionInteraction instances for each function in the contract's ABI,
|
|
8
|
-
* allowing users to call or send transactions to these functions. Additionally, the Contract class can be used
|
|
9
|
-
* to attach the contract instance to a deployed contract on-chain through the AztecRPCClient, which facilitates
|
|
10
|
-
* interaction with Aztec's privacy protocol.
|
|
11
|
-
*/
|
|
12
|
-
export declare class Contract extends ContractBase {
|
|
13
|
-
/**
|
|
14
|
-
* Creates a contract instance.
|
|
15
|
-
* @param address - The deployed contract's address.
|
|
16
|
-
* @param abi - The Application Binary Interface for the contract.
|
|
17
|
-
* @param wallet - The wallet to use when interacting with the contract.
|
|
18
|
-
* @returns A promise that resolves to a new Contract instance.
|
|
19
|
-
*/
|
|
20
|
-
static at(address: AztecAddress, abi: ContractAbi, wallet: Wallet): Promise<Contract>;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/contract/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC;;;;;;OAMG;WACiB,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CAOnG"}
|