@aztec/aztec.js 0.1.0-alpha28 → 0.1.0-alpha30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.tsbuildinfo +1 -1
- package/dest/aztec_rpc_client/wallet.d.ts +2 -1
- package/dest/aztec_rpc_client/wallet.d.ts.map +1 -1
- package/dest/aztec_rpc_client/wallet.js +4 -1
- package/dest/contract/sent_tx.d.ts +18 -7
- package/dest/contract/sent_tx.d.ts.map +1 -1
- package/dest/contract/sent_tx.js +30 -12
- 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 +1 -1
- package/dest/contract_deployer/deploy_method.d.ts +6 -4
- package/dest/contract_deployer/deploy_method.d.ts.map +1 -1
- package/dest/contract_deployer/deploy_method.js +6 -3
- 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/index.d.ts +1 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -1
- package/dest/main.js +1 -1
- package/dest/main.js.LICENSE.txt +0 -2
- package/dest/utils/account.js +2 -2
- package/package.json +5 -4
- package/package.local.json +1 -1
- package/src/aztec_rpc_client/wallet.ts +4 -0
- package/src/contract/sent_tx.test.ts +52 -0
- package/src/contract/sent_tx.ts +43 -12
- package/src/contract_deployer/deploy_method.ts +8 -6
- package/src/contract_deployer/deploy_sent_tx.ts +55 -0
- package/src/index.ts +2 -0
- package/src/utils/account.ts +1 -1
- package/tsconfig.dest.json +2 -4
|
@@ -1,4 +1,17 @@
|
|
|
1
|
+
import { FieldsOf } from '@aztec/circuits.js';
|
|
1
2
|
import { AztecRPC, TxHash, TxReceipt } from '@aztec/types';
|
|
3
|
+
/** Options related to waiting for a tx. */
|
|
4
|
+
export type WaitOpts = {
|
|
5
|
+
/** The maximum time (in seconds) to wait for the transaction to be mined. Defaults to 60. */
|
|
6
|
+
timeout?: number;
|
|
7
|
+
/** The time interval (in seconds) between retries to fetch the transaction receipt. Defaults to 1. */
|
|
8
|
+
interval?: number;
|
|
9
|
+
/**
|
|
10
|
+
* Whether to wait for the RPC server to sync all notes up to the block in which this tx was mined.
|
|
11
|
+
* If false, then any queries that depend on state set by this transaction may return stale data. Defaults to true.
|
|
12
|
+
**/
|
|
13
|
+
waitForNotesSync?: boolean;
|
|
14
|
+
};
|
|
2
15
|
/**
|
|
3
16
|
* The SentTx class represents a sent transaction through the AztecRPCClient, providing methods to fetch
|
|
4
17
|
* its hash, receipt, and mining status.
|
|
@@ -24,21 +37,19 @@ export declare class SentTx {
|
|
|
24
37
|
getReceipt(): Promise<TxReceipt>;
|
|
25
38
|
/**
|
|
26
39
|
* Awaits for a tx to be mined and returns the receipt. Throws if tx is not mined.
|
|
27
|
-
* @param
|
|
28
|
-
* @param interval - The time interval (in seconds) between retries to fetch the transaction receipt.
|
|
40
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
29
41
|
* @returns The transaction receipt.
|
|
30
42
|
*/
|
|
31
|
-
wait(
|
|
43
|
+
wait(opts?: WaitOpts): Promise<FieldsOf<TxReceipt>>;
|
|
32
44
|
/**
|
|
33
45
|
* Checks whether the transaction is mined or not within the specified timeout and retry interval.
|
|
34
46
|
* Resolves to true if the transaction status is 'MINED', false otherwise.
|
|
35
47
|
* Throws an error if the transaction receipt cannot be fetched after the given timeout.
|
|
36
48
|
*
|
|
37
|
-
* @param
|
|
38
|
-
* @param interval - The time interval (in seconds) between retries to fetch the transaction receipt.
|
|
49
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
39
50
|
* @returns A Promise that resolves to a boolean indicating if the transaction is mined or not.
|
|
40
51
|
*/
|
|
41
|
-
isMined(
|
|
42
|
-
protected waitForReceipt(
|
|
52
|
+
isMined(opts?: WaitOpts): Promise<boolean>;
|
|
53
|
+
protected waitForReceipt(opts?: WaitOpts): Promise<TxReceipt>;
|
|
43
54
|
}
|
|
44
55
|
//# sourceMappingURL=sent_tx.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sent_tx.d.ts","sourceRoot":"","sources":["../../src/contract/sent_tx.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sent_tx.d.ts","sourceRoot":"","sources":["../../src/contract/sent_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAIrE,2CAA2C;AAC3C,MAAM,MAAM,QAAQ,GAAG;IACrB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;QAGI;IACJ,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAQF;;;GAGG;AACH,qBAAa,MAAM;IACL,SAAS,CAAC,GAAG,EAAE,QAAQ;IAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;gBAAvD,GAAG,EAAE,QAAQ,EAAY,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;IAE7E;;;;;OAKG;IACU,SAAS;IAItB;;;;;;OAMG;IACU,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAK7C;;;;OAIG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAOhE;;;;;;;OAOG;IACU,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;cAKvC,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;CAuBpE"}
|
package/dest/contract/sent_tx.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
2
2
|
import { TxStatus } from '@aztec/types';
|
|
3
|
+
import every from 'lodash.every';
|
|
4
|
+
const DefaultWaitOpts = {
|
|
5
|
+
timeout: 60,
|
|
6
|
+
interval: 1,
|
|
7
|
+
waitForNotesSync: true,
|
|
8
|
+
};
|
|
3
9
|
/**
|
|
4
10
|
* The SentTx class represents a sent transaction through the AztecRPCClient, providing methods to fetch
|
|
5
11
|
* its hash, receipt, and mining status.
|
|
@@ -31,12 +37,11 @@ export class SentTx {
|
|
|
31
37
|
}
|
|
32
38
|
/**
|
|
33
39
|
* Awaits for a tx to be mined and returns the receipt. Throws if tx is not mined.
|
|
34
|
-
* @param
|
|
35
|
-
* @param interval - The time interval (in seconds) between retries to fetch the transaction receipt.
|
|
40
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
36
41
|
* @returns The transaction receipt.
|
|
37
42
|
*/
|
|
38
|
-
async wait(
|
|
39
|
-
const receipt = await this.waitForReceipt(
|
|
43
|
+
async wait(opts) {
|
|
44
|
+
const receipt = await this.waitForReceipt(opts);
|
|
40
45
|
if (receipt.status !== TxStatus.MINED)
|
|
41
46
|
throw new Error(`Transaction ${await this.getTxHash()} was ${receipt.status}`);
|
|
42
47
|
return receipt;
|
|
@@ -46,20 +51,33 @@ export class SentTx {
|
|
|
46
51
|
* Resolves to true if the transaction status is 'MINED', false otherwise.
|
|
47
52
|
* Throws an error if the transaction receipt cannot be fetched after the given timeout.
|
|
48
53
|
*
|
|
49
|
-
* @param
|
|
50
|
-
* @param interval - The time interval (in seconds) between retries to fetch the transaction receipt.
|
|
54
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
51
55
|
* @returns A Promise that resolves to a boolean indicating if the transaction is mined or not.
|
|
52
56
|
*/
|
|
53
|
-
async isMined(
|
|
54
|
-
const receipt = await this.waitForReceipt(
|
|
57
|
+
async isMined(opts) {
|
|
58
|
+
const receipt = await this.waitForReceipt(opts);
|
|
55
59
|
return receipt.status === TxStatus.MINED;
|
|
56
60
|
}
|
|
57
|
-
async waitForReceipt(
|
|
61
|
+
async waitForReceipt(opts) {
|
|
58
62
|
const txHash = await this.getTxHash();
|
|
59
63
|
return await retryUntil(async () => {
|
|
60
64
|
const txReceipt = await this.arc.getTxReceipt(txHash);
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
// If receipt is not yet available, try again
|
|
66
|
+
if (txReceipt.status === TxStatus.PENDING)
|
|
67
|
+
return undefined;
|
|
68
|
+
// If the tx was dropped, return it
|
|
69
|
+
if (txReceipt.status === TxStatus.DROPPED)
|
|
70
|
+
return txReceipt;
|
|
71
|
+
// If we don't care about waiting for notes to be synced, return the receipt
|
|
72
|
+
const waitForNotesSync = opts?.waitForNotesSync ?? DefaultWaitOpts.waitForNotesSync;
|
|
73
|
+
if (!waitForNotesSync)
|
|
74
|
+
return txReceipt;
|
|
75
|
+
// Check if all sync blocks on the rpc server are greater or equal than the block in which the tx was mined
|
|
76
|
+
const { blocks, notes } = await this.arc.getSyncStatus();
|
|
77
|
+
const targetBlock = txReceipt.blockNumber;
|
|
78
|
+
const areNotesSynced = blocks >= targetBlock && every(notes, block => block >= targetBlock);
|
|
79
|
+
return areNotesSynced ? txReceipt : undefined;
|
|
80
|
+
}, 'isMined', opts?.timeout ?? DefaultWaitOpts.timeout, opts?.interval ?? DefaultWaitOpts.interval);
|
|
63
81
|
}
|
|
64
82
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudF90eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9zZW50X3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQStCLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyRSxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFlakMsTUFBTSxlQUFlLEdBQWE7SUFDaEMsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsQ0FBQztJQUNYLGdCQUFnQixFQUFFLElBQUk7Q0FDdkIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sT0FBTyxNQUFNO0lBQ2pCLFlBQXNCLEdBQWEsRUFBWSxhQUE4QjtRQUF2RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVksa0JBQWEsR0FBYixhQUFhLENBQWlCO0lBQUcsQ0FBQztJQUVqRjs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QyxPQUFPLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQWU7UUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsS0FBSztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDakYsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQWU7UUFDbEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELE9BQU8sT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQzNDLENBQUM7SUFFUyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQWU7UUFDNUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEMsT0FBTyxNQUFNLFVBQVUsQ0FDckIsS0FBSyxJQUFJLEVBQUU7WUFDVCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELDZDQUE2QztZQUM3QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE9BQU87Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFDNUQsbUNBQW1DO1lBQ25DLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsT0FBTztnQkFBRSxPQUFPLFNBQVMsQ0FBQztZQUM1RCw0RUFBNEU7WUFDNUUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsZ0JBQWdCLElBQUksZUFBZSxDQUFDLGdCQUFnQixDQUFDO1lBQ3BGLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFDeEMsMkdBQTJHO1lBQzNHLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFZLENBQUM7WUFDM0MsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLFdBQVcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxDQUFDO1lBQzVGLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoRCxDQUFDLEVBQ0QsU0FBUyxFQUNULElBQUksRUFBRSxPQUFPLElBQUksZUFBZSxDQUFDLE9BQU8sRUFDeEMsSUFBSSxFQUFFLFFBQVEsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUMzQyxDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sent_tx.test.d.ts","sourceRoot":"","sources":["../../src/contract/sent_tx.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { TxHash, TxStatus } from '@aztec/types';
|
|
2
|
+
import { mock } from 'jest-mock-extended';
|
|
3
|
+
import { SentTx } from './sent_tx.js';
|
|
4
|
+
describe('SentTx', () => {
|
|
5
|
+
let rpc;
|
|
6
|
+
let txHashPromise;
|
|
7
|
+
let sentTx;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
rpc = mock();
|
|
10
|
+
txHashPromise = Promise.resolve(TxHash.fromBigInt(1n));
|
|
11
|
+
sentTx = new SentTx(rpc, txHashPromise);
|
|
12
|
+
});
|
|
13
|
+
describe('wait', () => {
|
|
14
|
+
let txReceipt;
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
txReceipt = { status: TxStatus.MINED, blockNumber: 20 };
|
|
17
|
+
rpc.getTxReceipt.mockResolvedValue(txReceipt);
|
|
18
|
+
});
|
|
19
|
+
it('waits for all notes accounts to be synced', async () => {
|
|
20
|
+
rpc.getSyncStatus
|
|
21
|
+
.mockResolvedValueOnce({ blocks: 25, notes: { '0x1': 19, '0x2': 20 } })
|
|
22
|
+
.mockResolvedValueOnce({ blocks: 25, notes: { '0x1': 20, '0x2': 20 } });
|
|
23
|
+
const actual = await sentTx.wait({ timeout: 1, interval: 0.4 });
|
|
24
|
+
expect(actual).toEqual(txReceipt);
|
|
25
|
+
});
|
|
26
|
+
it('fails if an account is not synced', async () => {
|
|
27
|
+
rpc.getSyncStatus.mockResolvedValue({ blocks: 25, notes: { '0x1': 19, '0x2': 20 } });
|
|
28
|
+
await expect(sentTx.wait({ timeout: 1, interval: 0.4 })).rejects.toThrowError(/timeout/i);
|
|
29
|
+
});
|
|
30
|
+
it('does not wait for notes sync', async () => {
|
|
31
|
+
rpc.getSyncStatus.mockResolvedValue({ blocks: 19, notes: { '0x1': 19, '0x2': 19 } });
|
|
32
|
+
const actual = await sentTx.wait({ timeout: 1, interval: 0.4, waitForNotesSync: false });
|
|
33
|
+
expect(actual).toEqual(txReceipt);
|
|
34
|
+
});
|
|
35
|
+
it('throws if tx is dropped', async () => {
|
|
36
|
+
rpc.getTxReceipt.mockResolvedValue({ ...txReceipt, status: TxStatus.DROPPED });
|
|
37
|
+
rpc.getSyncStatus.mockResolvedValue({ blocks: 19, notes: { '0x1': 19, '0x2': 19 } });
|
|
38
|
+
await expect(sentTx.wait({ timeout: 1, interval: 0.4 })).rejects.toThrowError(/dropped/);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudF90eC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L3NlbnRfdHgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksTUFBTSxFQUFhLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyRSxPQUFPLEVBQWEsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0QyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtJQUN0QixJQUFJLEdBQXdCLENBQUM7SUFDN0IsSUFBSSxhQUE4QixDQUFDO0lBRW5DLElBQUksTUFBYyxDQUFDO0lBRW5CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDYixhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkQsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1FBQ3BCLElBQUksU0FBb0IsQ0FBQztRQUN6QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsU0FBUyxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBZSxDQUFDO1lBQ3JFLEdBQUcsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekQsR0FBRyxDQUFDLGFBQWE7aUJBQ2QscUJBQXFCLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFB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
|
|
@@ -20,6 +20,6 @@ export declare class ContractDeployer {
|
|
|
20
20
|
* @param args - The constructor arguments for the contract being deployed.
|
|
21
21
|
* @returns A DeployMethod instance configured with the ABI, AztecRPCClient, and constructor arguments.
|
|
22
22
|
*/
|
|
23
|
-
deploy(...args: any[]): DeployMethod
|
|
23
|
+
deploy(...args: any[]): DeployMethod<import("../index.js").Contract>;
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=contract_deployer.d.ts.map
|
|
@@ -5,7 +5,8 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
import { AztecRPC, PublicKey, Tx, TxExecutionRequest } from '@aztec/types';
|
|
7
7
|
import { Wallet } from '../aztec_rpc_client/wallet.js';
|
|
8
|
-
import { Contract, ContractFunctionInteraction, SendMethodOptions } from '../contract/index.js';
|
|
8
|
+
import { Contract, ContractBase, ContractFunctionInteraction, SendMethodOptions } from '../contract/index.js';
|
|
9
|
+
import { DeploySentTx } from './deploy_sent_tx.js';
|
|
9
10
|
/**
|
|
10
11
|
* Options for deploying a contract on the Aztec network.
|
|
11
12
|
* Allows specifying a portal contract, contract address salt, and additional send method options.
|
|
@@ -24,8 +25,9 @@ export interface DeployOptions extends SendMethodOptions {
|
|
|
24
25
|
* Creates a TxRequest from a contract ABI, for contract deployment.
|
|
25
26
|
* Extends the ContractFunctionInteraction class.
|
|
26
27
|
*/
|
|
27
|
-
export declare class DeployMethod extends ContractFunctionInteraction {
|
|
28
|
+
export declare class DeployMethod<TContract extends ContractBase = Contract> extends ContractFunctionInteraction {
|
|
28
29
|
private publicKey;
|
|
30
|
+
private arc;
|
|
29
31
|
private abi;
|
|
30
32
|
/**
|
|
31
33
|
* The partially computed contract address. Known after creation of the deployment transaction.
|
|
@@ -52,9 +54,9 @@ export declare class DeployMethod extends ContractFunctionInteraction {
|
|
|
52
54
|
* allowing us to send a transaction specifically for contract deployment.
|
|
53
55
|
*
|
|
54
56
|
* @param options - An object containing various deployment options such as portalContract, contractAddressSalt, and from.
|
|
55
|
-
* @returns A
|
|
57
|
+
* @returns A SentTx object that returns the receipt and the deployed contract instance.
|
|
56
58
|
*/
|
|
57
|
-
send(options?: DeployOptions):
|
|
59
|
+
send(options?: DeployOptions): DeploySentTx<TContract>;
|
|
58
60
|
/**
|
|
59
61
|
* Simulate the request.
|
|
60
62
|
* @param options - Deployment options.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_method.d.ts","sourceRoot":"","sources":["../../src/contract_deployer/deploy_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,sBAAsB,EAGvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAqC,SAAS,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE9G,OAAO,EAAc,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy_method.d.ts","sourceRoot":"","sources":["../../src/contract_deployer/deploy_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,sBAAsB,EAGvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAqC,SAAS,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE9G,OAAO,EAAc,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,EAAE,CAAC;CAC1B;AAyBD;;;GAGG;AACH,qBAAa,YAAY,CAAC,SAAS,SAAS,YAAY,GAAG,QAAQ,CAAE,SAAQ,2BAA2B;IAW1F,OAAO,CAAC,SAAS;IAAa,OAAO,CAAC,GAAG;IAAY,OAAO,CAAC,GAAG;IAV5E;;OAEG;IACI,sBAAsB,CAAC,EAAE,sBAAsB,CAAa;IAEnE;;OAEG;IACI,uBAAuB,CAAC,EAAE,YAAY,CAAa;gBAEtC,SAAS,EAAE,SAAS,EAAU,GAAG,EAAE,QAAQ,EAAU,GAAG,EAAE,WAAW,EAAE,IAAI,GAAE,GAAG,EAAO;IAS3G;;;;;;;;OAQG;IACU,MAAM,CAAC,OAAO,GAAE,aAAkB;IAmC/C;;;;;;;OAOG;IACI,IAAI,CAAC,OAAO,GAAE,aAAkB,GAAG,YAAY,CAAC,SAAS,CAAC;IAKjE;;;;OAIG;IACU,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,EAAE,CAAC;IAO1D;;;;OAIG;IACU,WAAW,CAAC,UAAU,EAAE,MAAM;CAM5C"}
|
|
@@ -5,6 +5,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
5
5
|
import { PackedArguments, TxExecutionRequest } from '@aztec/types';
|
|
6
6
|
import { BaseWallet } from '../aztec_rpc_client/wallet.js';
|
|
7
7
|
import { Contract, ContractFunctionInteraction } from '../contract/index.js';
|
|
8
|
+
import { DeploySentTx } from './deploy_sent_tx.js';
|
|
8
9
|
/**
|
|
9
10
|
* Simple wallet implementation for use when deploying contracts only.
|
|
10
11
|
*/
|
|
@@ -34,6 +35,7 @@ export class DeployMethod extends ContractFunctionInteraction {
|
|
|
34
35
|
}
|
|
35
36
|
super(new DeployerWallet(arc), AztecAddress.ZERO, constructorAbi, args);
|
|
36
37
|
this.publicKey = publicKey;
|
|
38
|
+
this.arc = arc;
|
|
37
39
|
this.abi = abi;
|
|
38
40
|
/**
|
|
39
41
|
* The partially computed contract address. Known after creation of the deployment transaction.
|
|
@@ -75,10 +77,11 @@ export class DeployMethod extends ContractFunctionInteraction {
|
|
|
75
77
|
* allowing us to send a transaction specifically for contract deployment.
|
|
76
78
|
*
|
|
77
79
|
* @param options - An object containing various deployment options such as portalContract, contractAddressSalt, and from.
|
|
78
|
-
* @returns A
|
|
80
|
+
* @returns A SentTx object that returns the receipt and the deployed contract instance.
|
|
79
81
|
*/
|
|
80
82
|
send(options = {}) {
|
|
81
|
-
|
|
83
|
+
const txHashPromise = super.send(options).getTxHash();
|
|
84
|
+
return new DeploySentTx(this.abi, this.arc, txHashPromise);
|
|
82
85
|
}
|
|
83
86
|
/**
|
|
84
87
|
* Simulate the request.
|
|
@@ -102,4 +105,4 @@ export class DeployMethod extends ContractFunctionInteraction {
|
|
|
102
105
|
return await Contract.create(this.completeContractAddress, this.abi, withWallet);
|
|
103
106
|
}
|
|
104
107
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X21ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdF9kZXBsb3llci9kZXBsb3lfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osc0JBQXNCLEVBRXRCLFNBQVMsRUFDVCx5QkFBeUIsR0FDMUIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQThCLGVBQWUsRUFBaUIsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUcsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQWdCLDJCQUEyQixFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWlCbkQ7O0dBRUc7QUFDSCxNQUFNLGNBQWUsU0FBUSxVQUFVO0lBQ3JDLFVBQVU7UUFDUixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUNELEtBQUssQ0FBQyw0QkFBNEIsQ0FDaEMsVUFBOEIsRUFDOUIsU0FBb0I7UUFFcEIsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUMxRztRQUNELE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDL0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEMsTUFBTSxlQUFlLEdBQUcs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
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { FieldsOf } from '@aztec/circuits.js';
|
|
2
|
+
import { ContractAbi } from '@aztec/foundation/abi';
|
|
3
|
+
import { TxHash, TxReceipt } from '@aztec/types';
|
|
4
|
+
import { AztecAddress, AztecRPC, Contract, ContractBase, SentTx, WaitOpts, Wallet } from '../index.js';
|
|
5
|
+
/** Options related to waiting for a deployment tx. */
|
|
6
|
+
export type DeployedWaitOpts = WaitOpts & {
|
|
7
|
+
/** Wallet to use for creating a contract instance. Uses the one set in the deployer constructor if not set. */
|
|
8
|
+
wallet?: Wallet;
|
|
9
|
+
};
|
|
10
|
+
/** Extends a transaction receipt with a contract instance that represents the newly deployed contract. */
|
|
11
|
+
export type DeployTxReceipt<TContract extends ContractBase = Contract> = FieldsOf<TxReceipt> & {
|
|
12
|
+
/** Instance of the newly deployed contract. */
|
|
13
|
+
contract: TContract;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* A contract deployment transaction sent to the network, extending SentTx with methods to create a contract instance.
|
|
17
|
+
*/
|
|
18
|
+
export declare class DeploySentTx<TContract extends ContractBase = Contract> extends SentTx {
|
|
19
|
+
private abi;
|
|
20
|
+
constructor(abi: ContractAbi, wallet: AztecRPC | Wallet, txHashPromise: Promise<TxHash>);
|
|
21
|
+
/**
|
|
22
|
+
* Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
|
|
23
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
24
|
+
* @returns The deployed contract instance.
|
|
25
|
+
*/
|
|
26
|
+
deployed(opts?: DeployedWaitOpts): Promise<TContract>;
|
|
27
|
+
/**
|
|
28
|
+
* Awaits for the tx to be mined and returns the receipt along with a contract instance. Throws if tx is not mined.
|
|
29
|
+
* @param opts - Options for configuring the waiting for the tx to be mined.
|
|
30
|
+
* @returns The transaction receipt with the deployed contract instance.
|
|
31
|
+
*/
|
|
32
|
+
wait(opts?: DeployedWaitOpts): Promise<DeployTxReceipt<TContract>>;
|
|
33
|
+
protected getContractInstance(wallet?: Wallet, address?: AztecAddress): Promise<TContract>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=deploy_sent_tx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy_sent_tx.d.ts","sourceRoot":"","sources":["../../src/contract_deployer/deploy_sent_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvG,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IACxC,+GAA+G;IAC/G,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0GAA0G;AAC1G,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,YAAY,GAAG,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG;IAC7F,+CAA+C;IAC/C,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAY,CAAC,SAAS,SAAS,YAAY,GAAG,QAAQ,CAAE,SAAQ,MAAM;IACrE,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;IAI/F;;;;OAIG;IACU,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKlE;;;;OAIG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAM/E,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;CAO3F"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Contract, SentTx } from '../index.js';
|
|
2
|
+
/**
|
|
3
|
+
* A contract deployment transaction sent to the network, extending SentTx with methods to create a contract instance.
|
|
4
|
+
*/
|
|
5
|
+
export class DeploySentTx extends SentTx {
|
|
6
|
+
constructor(abi, wallet, txHashPromise) {
|
|
7
|
+
super(wallet, txHashPromise);
|
|
8
|
+
this.abi = abi;
|
|
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 deployed(opts) {
|
|
16
|
+
const receipt = await this.wait(opts);
|
|
17
|
+
return receipt.contract;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Awaits for the tx to be mined and returns the receipt along with a contract 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 deployed contract instance.
|
|
23
|
+
*/
|
|
24
|
+
async wait(opts) {
|
|
25
|
+
const receipt = await super.wait(opts);
|
|
26
|
+
const contract = await this.getContractInstance(opts?.wallet, receipt.contractAddress);
|
|
27
|
+
return { ...receipt, contract };
|
|
28
|
+
}
|
|
29
|
+
getContractInstance(wallet, address) {
|
|
30
|
+
const isWallet = (rpc) => !!rpc.createAuthenticatedTxRequest;
|
|
31
|
+
const contractWallet = wallet ?? (isWallet(this.arc) && this.arc);
|
|
32
|
+
if (!contractWallet)
|
|
33
|
+
throw new Error(`A wallet is required for creating a contract instance`);
|
|
34
|
+
if (!address)
|
|
35
|
+
throw new Error(`Contract address is missing from transaction receipt`);
|
|
36
|
+
return Contract.create(address, this.abi, contractWallet);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3NlbnRfdHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RfZGVwbG95ZXIvZGVwbG95X3NlbnRfdHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUEwQixRQUFRLEVBQWdCLE1BQU0sRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFjdkc7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBd0QsU0FBUSxNQUFNO0lBQ2pGLFlBQW9CLEdBQWdCLEVBQUUsTUFBeUIsRUFBRSxhQUE4QjtRQUM3RixLQUFLLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRFgsUUFBRyxHQUFILEdBQUcsQ0FBYTtJQUVwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBdUI7UUFDM0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBdUI7UUFDdkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZGLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRVMsbUJBQW1CLENBQUMsTUFBZSxFQUFFLE9BQXNCO1FBQ25FLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBc0IsRUFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBRSxHQUFjLENBQUMsNEJBQTRCLENBQUM7UUFDM0csTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGNBQWM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7UUFDdEYsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBdUIsQ0FBQztJQUNsRixDQUFDO0NBQ0YifQ==
|
package/dest/index.d.ts
CHANGED
|
@@ -6,4 +6,5 @@ export * from './account_impl/index.js';
|
|
|
6
6
|
export * from './contract_deployer/deploy_method.js';
|
|
7
7
|
export { AztecAddress, EthAddress, Point, Fr } from '@aztec/circuits.js';
|
|
8
8
|
export { AztecRPC, ContractData, ContractDeploymentTx, ContractPublicData, DeployedContract, ExecutionRequest, L2BlockL2Logs, NodeInfo, PackedArguments, PublicKey, PrivateKey, Tx, TxExecutionRequest, TxHash, TxReceipt, TxStatus, emptyExecutionRequest, } from '@aztec/types';
|
|
9
|
+
export { createDebugLogger } from '@aztec/foundation/log';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AAKrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,eAAe,EACf,SAAS,EACT,UAAU,EACV,EAAE,EACF,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,QAAQ,EACR,qBAAqB,GACtB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AAKrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,eAAe,EACf,SAAS,EACT,UAAU,EACV,EAAE,EACF,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,QAAQ,EACR,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -8,4 +8,5 @@ export * from './contract_deployer/deploy_method.js';
|
|
|
8
8
|
// export * from '@aztec/aztec-rpc';
|
|
9
9
|
export { AztecAddress, EthAddress, Point, Fr } from '@aztec/circuits.js';
|
|
10
10
|
export { ContractData, ContractDeploymentTx, ContractPublicData, L2BlockL2Logs, PackedArguments, PrivateKey, Tx, TxExecutionRequest, TxHash, TxReceipt, TxStatus, emptyExecutionRequest, } from '@aztec/types';
|
|
11
|
-
|
|
11
|
+
export { createDebugLogger } from '@aztec/foundation/log';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsc0NBQXNDO0FBQ3RDLG9DQUFvQztBQUVwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekUsT0FBTyxFQUVMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBR2xCLGFBQWEsRUFFYixlQUFlLEVBRWYsVUFBVSxFQUNWLEVBQUUsRUFDRixrQkFBa0IsRUFDbEIsTUFBTSxFQUNOLFNBQVMsRUFDVCxRQUFRLEVBQ1IscUJBQXFCLEdBQ3RCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDIn0=
|