@aztec/ethereum 0.61.0 → 0.62.0
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/dest/index.d.ts +1 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -1
- package/dest/utils.d.ts +11 -0
- package/dest/utils.d.ts.map +1 -0
- package/dest/utils.js +27 -0
- package/package.json +3 -3
- package/src/index.ts +1 -0
- package/src/utils.ts +66 -0
package/dest/index.d.ts
CHANGED
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,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -3,4 +3,5 @@ export * from './deploy_l1_contracts.js';
|
|
|
3
3
|
export * from './l1_contract_addresses.js';
|
|
4
4
|
export * from './l1_reader.js';
|
|
5
5
|
export * from './ethereum_chain.js';
|
|
6
|
-
|
|
6
|
+
export * from './utils.js';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsWUFBWSxDQUFDIn0=
|
package/dest/utils.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { type DebugLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { type Abi, type ContractEventName, type DecodeEventLogReturnType, type Hex, type Log } from 'viem';
|
|
4
|
+
export interface L2Claim {
|
|
5
|
+
claimSecret: Fr;
|
|
6
|
+
claimAmount: Fr;
|
|
7
|
+
messageHash: Hex;
|
|
8
|
+
messageLeafIndex: bigint;
|
|
9
|
+
}
|
|
10
|
+
export declare function extractEvent<const TAbi extends Abi | readonly unknown[], TEventName extends ContractEventName<TAbi>, TEventType = DecodeEventLogReturnType<TAbi, TEventName, Hex[], undefined, true>>(logs: Log[], address: Hex, abi: TAbi, eventName: TEventName, filter?: (log: TEventType) => boolean, logger?: DebugLogger): TEventType;
|
|
11
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EACL,KAAK,GAAG,EACR,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,GAAG,EACR,KAAK,GAAG,EAET,MAAM,MAAM,CAAC;AAEd,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,EAAE,CAAC;IAChB,WAAW,EAAE,EAAE,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAC1B,KAAK,CAAC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EAC3C,UAAU,SAAS,iBAAiB,CAAC,IAAI,CAAC,EAC1C,UAAU,GAAG,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAE/E,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,GAAG,EACZ,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,UAAU,EACrB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,EACrC,MAAM,CAAC,EAAE,WAAW,GACnB,UAAU,CAMZ"}
|
package/dest/utils.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { decodeEventLog, } from 'viem';
|
|
2
|
+
export function extractEvent(logs, address, abi, eventName, filter, logger) {
|
|
3
|
+
const event = tryExtractEvent(logs, address, abi, eventName, filter, logger);
|
|
4
|
+
if (!event) {
|
|
5
|
+
throw new Error(`Failed to find matching event ${eventName} for contract ${address}`);
|
|
6
|
+
}
|
|
7
|
+
return event;
|
|
8
|
+
}
|
|
9
|
+
function tryExtractEvent(logs, address, abi, eventName, filter, logger) {
|
|
10
|
+
for (const log of logs) {
|
|
11
|
+
if (log.address === address) {
|
|
12
|
+
try {
|
|
13
|
+
const decodedEvent = decodeEventLog({ abi, ...log });
|
|
14
|
+
if (decodedEvent.eventName === eventName) {
|
|
15
|
+
const matchingEvent = decodedEvent;
|
|
16
|
+
if (!filter || filter(matchingEvent)) {
|
|
17
|
+
return matchingEvent;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
logger?.warn(`Failed to decode event log for contract ${address}: ${err}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQU1MLGNBQWMsR0FDZixNQUFNLE1BQU0sQ0FBQztBQVNkLE1BQU0sVUFBVSxZQUFZLENBSzFCLElBQVcsRUFDWCxPQUFZLEVBQ1osR0FBUyxFQUNULFNBQXFCLEVBQ3JCLE1BQXFDLEVBQ3JDLE1BQW9CO0lBRXBCLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLFNBQVMsaUJBQWlCLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUt0QixJQUFXLEVBQ1gsT0FBWSxFQUNaLEdBQVMsRUFDVCxTQUFxQixFQUNyQixNQUFxQyxFQUNyQyxNQUFvQjtJQUVwQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksR0FBRyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDckQsSUFBSSxZQUFZLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN6QyxNQUFNLGFBQWEsR0FBRyxZQUEwQixDQUFDO29CQUNqRCxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO3dCQUNyQyxPQUFPLGFBQWEsQ0FBQztvQkFDdkIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQywyQ0FBMkMsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDN0UsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/ethereum",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.62.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"typedocOptions": {
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"../package.common.json"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aztec/foundation": "0.
|
|
28
|
-
"@aztec/l1-artifacts": "0.
|
|
27
|
+
"@aztec/foundation": "0.62.0",
|
|
28
|
+
"@aztec/l1-artifacts": "0.62.0",
|
|
29
29
|
"dotenv": "^16.0.3",
|
|
30
30
|
"tslib": "^2.4.0",
|
|
31
31
|
"viem": "^2.7.15"
|
package/src/index.ts
CHANGED
package/src/utils.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { type Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { type DebugLogger } from '@aztec/foundation/log';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
type Abi,
|
|
6
|
+
type ContractEventName,
|
|
7
|
+
type DecodeEventLogReturnType,
|
|
8
|
+
type Hex,
|
|
9
|
+
type Log,
|
|
10
|
+
decodeEventLog,
|
|
11
|
+
} from 'viem';
|
|
12
|
+
|
|
13
|
+
export interface L2Claim {
|
|
14
|
+
claimSecret: Fr;
|
|
15
|
+
claimAmount: Fr;
|
|
16
|
+
messageHash: Hex;
|
|
17
|
+
messageLeafIndex: bigint;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function extractEvent<
|
|
21
|
+
const TAbi extends Abi | readonly unknown[],
|
|
22
|
+
TEventName extends ContractEventName<TAbi>,
|
|
23
|
+
TEventType = DecodeEventLogReturnType<TAbi, TEventName, Hex[], undefined, true>,
|
|
24
|
+
>(
|
|
25
|
+
logs: Log[],
|
|
26
|
+
address: Hex,
|
|
27
|
+
abi: TAbi,
|
|
28
|
+
eventName: TEventName,
|
|
29
|
+
filter?: (log: TEventType) => boolean,
|
|
30
|
+
logger?: DebugLogger,
|
|
31
|
+
): TEventType {
|
|
32
|
+
const event = tryExtractEvent(logs, address, abi, eventName, filter, logger);
|
|
33
|
+
if (!event) {
|
|
34
|
+
throw new Error(`Failed to find matching event ${eventName} for contract ${address}`);
|
|
35
|
+
}
|
|
36
|
+
return event;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function tryExtractEvent<
|
|
40
|
+
const TAbi extends Abi | readonly unknown[],
|
|
41
|
+
TEventName extends ContractEventName<TAbi>,
|
|
42
|
+
TEventType = DecodeEventLogReturnType<TAbi, TEventName, Hex[], undefined, true>,
|
|
43
|
+
>(
|
|
44
|
+
logs: Log[],
|
|
45
|
+
address: Hex,
|
|
46
|
+
abi: TAbi,
|
|
47
|
+
eventName: TEventName,
|
|
48
|
+
filter?: (log: TEventType) => boolean,
|
|
49
|
+
logger?: DebugLogger,
|
|
50
|
+
): TEventType | undefined {
|
|
51
|
+
for (const log of logs) {
|
|
52
|
+
if (log.address === address) {
|
|
53
|
+
try {
|
|
54
|
+
const decodedEvent = decodeEventLog({ abi, ...log });
|
|
55
|
+
if (decodedEvent.eventName === eventName) {
|
|
56
|
+
const matchingEvent = decodedEvent as TEventType;
|
|
57
|
+
if (!filter || filter(matchingEvent)) {
|
|
58
|
+
return matchingEvent;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
} catch (err) {
|
|
62
|
+
logger?.warn(`Failed to decode event log for contract ${address}: ${err}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|