@aztec/validator-client 2.1.0-rc.29 → 2.1.0-rc.30
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/key_store/web3signer_key_store.d.ts.map +1 -1
- package/dest/key_store/web3signer_key_store.js +7 -8
- package/dest/metrics.d.ts +2 -2
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +6 -4
- package/dest/validator.d.ts.map +1 -1
- package/dest/validator.js +14 -16
- package/package.json +11 -11
- package/src/key_store/web3signer_key_store.ts +7 -10
- package/src/metrics.ts +4 -2
- package/src/validator.ts +15 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web3signer_key_store.d.ts","sourceRoot":"","sources":["../../src/key_store/web3signer_key_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"web3signer_key_store.d.ts","sourceRoot":"","sources":["../../src/key_store/web3signer_key_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IAExD,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;gBADP,SAAS,EAAE,UAAU,EAAE,EACvB,OAAO,EAAE,MAAM;IAGzB;;;;;OAKG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAO5C;;;;OAIG;IACI,YAAY,IAAI,UAAU,EAAE;IAInC;;;;OAIG;IACI,aAAa,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAI1E;;;;;;OAMG;IACU,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ9G;;;;;OAKG;IACI,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAI3D;;;;;;OAMG;IACU,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAO/F;;;;;OAKG;YACW,sBAAsB;YAiDtB,+BAA+B;CA6C9C"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { normalizeSignature } from '@aztec/foundation/crypto';
|
|
1
2
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
2
3
|
/**
|
|
3
4
|
* Web3Signer Key Store
|
|
@@ -33,9 +34,8 @@ import { Signature } from '@aztec/foundation/eth-signature';
|
|
|
33
34
|
* Sign EIP-712 typed data with all keystore addresses
|
|
34
35
|
* @param typedData - The complete EIP-712 typed data structure (domain, types, primaryType, message)
|
|
35
36
|
* @return signatures
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
return signatures;
|
|
37
|
+
*/ signTypedData(typedData) {
|
|
38
|
+
return Promise.all(this.addresses.map((address)=>this.makeJsonRpcSignTypedDataRequest(address, typedData)));
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Sign EIP-712 typed data with a specific address
|
|
@@ -54,9 +54,8 @@ import { Signature } from '@aztec/foundation/eth-signature';
|
|
|
54
54
|
*
|
|
55
55
|
* @param message - The message to sign
|
|
56
56
|
* @return signatures
|
|
57
|
-
*/
|
|
58
|
-
|
|
59
|
-
return signatures;
|
|
57
|
+
*/ signMessage(message) {
|
|
58
|
+
return Promise.all(this.addresses.map((address)=>this.makeJsonRpcSignRequest(address, message)));
|
|
60
59
|
}
|
|
61
60
|
/**
|
|
62
61
|
* Sign a message with a specific address using EIP-191 prefix
|
|
@@ -112,7 +111,7 @@ import { Signature } from '@aztec/foundation/eth-signature';
|
|
|
112
111
|
signatureHex = '0x' + signatureHex;
|
|
113
112
|
}
|
|
114
113
|
// Parse the signature from the hex string
|
|
115
|
-
return Signature.fromString(signatureHex);
|
|
114
|
+
return normalizeSignature(Signature.fromString(signatureHex));
|
|
116
115
|
}
|
|
117
116
|
async makeJsonRpcSignTypedDataRequest(address, typedData) {
|
|
118
117
|
const url = this.baseUrl;
|
|
@@ -148,6 +147,6 @@ import { Signature } from '@aztec/foundation/eth-signature';
|
|
|
148
147
|
if (!signatureHex.startsWith('0x')) {
|
|
149
148
|
signatureHex = '0x' + signatureHex;
|
|
150
149
|
}
|
|
151
|
-
return Signature.fromString(signatureHex);
|
|
150
|
+
return normalizeSignature(Signature.fromString(signatureHex));
|
|
152
151
|
}
|
|
153
152
|
}
|
package/dest/metrics.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export declare class ValidatorMetrics {
|
|
|
12
12
|
recordReex(time: number, txs: number, mManaTotal: number): void;
|
|
13
13
|
recordFailedReexecution(proposal: BlockProposal): void;
|
|
14
14
|
incSuccessfulAttestations(num: number): void;
|
|
15
|
-
incFailedAttestationsBadProposal(num: number, reason: string): void;
|
|
16
|
-
incFailedAttestationsNodeIssue(num: number, reason: string): void;
|
|
15
|
+
incFailedAttestationsBadProposal(num: number, reason: string, inCommittee: boolean): void;
|
|
16
|
+
incFailedAttestationsNodeIssue(num: number, reason: string, inCommittee: boolean): void;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=metrics.d.ts.map
|
package/dest/metrics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAIL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,wBAAwB,CAAgB;IAChD,OAAO,CAAC,2BAA2B,CAAgB;IACnD,OAAO,CAAC,kCAAkC,CAAgB;IAC1D,OAAO,CAAC,gCAAgC,CAAgB;IAExD,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,YAAY,CAAY;gBAEpB,eAAe,EAAE,eAAe;IAiDrC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAMxD,uBAAuB,CAAC,QAAQ,EAAE,aAAa;IAQ/C,yBAAyB,CAAC,GAAG,EAAE,MAAM;IAIrC,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAIL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,wBAAwB,CAAgB;IAChD,OAAO,CAAC,2BAA2B,CAAgB;IACnD,OAAO,CAAC,kCAAkC,CAAgB;IAC1D,OAAO,CAAC,gCAAgC,CAAgB;IAExD,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,YAAY,CAAY;gBAEpB,eAAe,EAAE,eAAe;IAiDrC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAMxD,uBAAuB,CAAC,QAAQ,EAAE,aAAa;IAQ/C,yBAAyB,CAAC,GAAG,EAAE,MAAM;IAIrC,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;IAOlF,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;CAMxF"}
|
package/dest/metrics.js
CHANGED
|
@@ -57,14 +57,16 @@ export class ValidatorMetrics {
|
|
|
57
57
|
incSuccessfulAttestations(num) {
|
|
58
58
|
this.successfulAttestationsCount.add(num);
|
|
59
59
|
}
|
|
60
|
-
incFailedAttestationsBadProposal(num, reason) {
|
|
60
|
+
incFailedAttestationsBadProposal(num, reason, inCommittee) {
|
|
61
61
|
this.failedAttestationsBadProposalCount.add(num, {
|
|
62
|
-
[Attributes.ERROR_TYPE]: reason
|
|
62
|
+
[Attributes.ERROR_TYPE]: reason,
|
|
63
|
+
[Attributes.IS_COMMITTEE_MEMBER]: inCommittee
|
|
63
64
|
});
|
|
64
65
|
}
|
|
65
|
-
incFailedAttestationsNodeIssue(num, reason) {
|
|
66
|
+
incFailedAttestationsNodeIssue(num, reason, inCommittee) {
|
|
66
67
|
this.failedAttestationsNodeIssueCount.add(num, {
|
|
67
|
-
[Attributes.ERROR_TYPE]: reason
|
|
68
|
+
[Attributes.ERROR_TYPE]: reason,
|
|
69
|
+
[Attributes.IS_COMMITTEE_MEMBER]: inCommittee
|
|
68
70
|
});
|
|
69
71
|
}
|
|
70
72
|
}
|
package/dest/validator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
package/dest/validator.js
CHANGED
|
@@ -182,22 +182,20 @@ const SLASHABLE_BLOCK_PROPOSAL_VALIDATION_RESULT = [
|
|
|
182
182
|
const validationResult = await this.blockProposalHandler.handleBlockProposal(proposal, proposalSender, !!shouldReexecute);
|
|
183
183
|
if (!validationResult.isValid) {
|
|
184
184
|
this.log.warn(`Proposal validation failed: ${validationResult.reason}`, proposalInfo);
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
this.metrics.incFailedAttestationsNodeIssue(1, reason);
|
|
200
|
-
}
|
|
185
|
+
const reason = validationResult.reason || 'unknown';
|
|
186
|
+
// Classify failure reason: bad proposal vs node issue
|
|
187
|
+
const badProposalReasons = [
|
|
188
|
+
'invalid_proposal',
|
|
189
|
+
'state_mismatch',
|
|
190
|
+
'failed_txs',
|
|
191
|
+
'in_hash_mismatch',
|
|
192
|
+
'parent_block_wrong_slot'
|
|
193
|
+
];
|
|
194
|
+
if (badProposalReasons.includes(reason)) {
|
|
195
|
+
this.metrics.incFailedAttestationsBadProposal(1, reason, partOfCommittee);
|
|
196
|
+
} else {
|
|
197
|
+
// Node issues so we can't attest
|
|
198
|
+
this.metrics.incFailedAttestationsNodeIssue(1, reason, partOfCommittee);
|
|
201
199
|
}
|
|
202
200
|
// Slash invalid block proposals (can happen even when not in committee)
|
|
203
201
|
if (validationResult.reason && SLASHABLE_BLOCK_PROPOSAL_VALIDATION_RESULT.includes(validationResult.reason) && slashBroadcastedInvalidBlockPenalty > 0n) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/validator-client",
|
|
3
|
-
"version": "2.1.0-rc.
|
|
3
|
+
"version": "2.1.0-rc.30",
|
|
4
4
|
"main": "dest/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -64,16 +64,16 @@
|
|
|
64
64
|
]
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@aztec/constants": "2.1.0-rc.
|
|
68
|
-
"@aztec/epoch-cache": "2.1.0-rc.
|
|
69
|
-
"@aztec/ethereum": "2.1.0-rc.
|
|
70
|
-
"@aztec/foundation": "2.1.0-rc.
|
|
71
|
-
"@aztec/node-keystore": "2.1.0-rc.
|
|
72
|
-
"@aztec/p2p": "2.1.0-rc.
|
|
73
|
-
"@aztec/prover-client": "2.1.0-rc.
|
|
74
|
-
"@aztec/slasher": "2.1.0-rc.
|
|
75
|
-
"@aztec/stdlib": "2.1.0-rc.
|
|
76
|
-
"@aztec/telemetry-client": "2.1.0-rc.
|
|
67
|
+
"@aztec/constants": "2.1.0-rc.30",
|
|
68
|
+
"@aztec/epoch-cache": "2.1.0-rc.30",
|
|
69
|
+
"@aztec/ethereum": "2.1.0-rc.30",
|
|
70
|
+
"@aztec/foundation": "2.1.0-rc.30",
|
|
71
|
+
"@aztec/node-keystore": "2.1.0-rc.30",
|
|
72
|
+
"@aztec/p2p": "2.1.0-rc.30",
|
|
73
|
+
"@aztec/prover-client": "2.1.0-rc.30",
|
|
74
|
+
"@aztec/slasher": "2.1.0-rc.30",
|
|
75
|
+
"@aztec/stdlib": "2.1.0-rc.30",
|
|
76
|
+
"@aztec/telemetry-client": "2.1.0-rc.30",
|
|
77
77
|
"koa": "^2.16.1",
|
|
78
78
|
"koa-router": "^13.1.1",
|
|
79
79
|
"tslib": "^2.4.0",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
+
import { normalizeSignature } from '@aztec/foundation/crypto';
|
|
2
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
4
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
4
5
|
|
|
@@ -45,11 +46,8 @@ export class Web3SignerKeyStore implements ValidatorKeyStore {
|
|
|
45
46
|
* @param typedData - The complete EIP-712 typed data structure (domain, types, primaryType, message)
|
|
46
47
|
* @return signatures
|
|
47
48
|
*/
|
|
48
|
-
public
|
|
49
|
-
|
|
50
|
-
this.addresses.map(address => this.makeJsonRpcSignTypedDataRequest(address, typedData)),
|
|
51
|
-
);
|
|
52
|
-
return signatures;
|
|
49
|
+
public signTypedData(typedData: TypedDataDefinition): Promise<Signature[]> {
|
|
50
|
+
return Promise.all(this.addresses.map(address => this.makeJsonRpcSignTypedDataRequest(address, typedData)));
|
|
53
51
|
}
|
|
54
52
|
|
|
55
53
|
/**
|
|
@@ -73,9 +71,8 @@ export class Web3SignerKeyStore implements ValidatorKeyStore {
|
|
|
73
71
|
* @param message - The message to sign
|
|
74
72
|
* @return signatures
|
|
75
73
|
*/
|
|
76
|
-
public
|
|
77
|
-
|
|
78
|
-
return signatures;
|
|
74
|
+
public signMessage(message: Buffer32): Promise<Signature[]> {
|
|
75
|
+
return Promise.all(this.addresses.map(address => this.makeJsonRpcSignRequest(address, message)));
|
|
79
76
|
}
|
|
80
77
|
|
|
81
78
|
/**
|
|
@@ -144,7 +141,7 @@ export class Web3SignerKeyStore implements ValidatorKeyStore {
|
|
|
144
141
|
}
|
|
145
142
|
|
|
146
143
|
// Parse the signature from the hex string
|
|
147
|
-
return Signature.fromString(signatureHex as `0x${string}`);
|
|
144
|
+
return normalizeSignature(Signature.fromString(signatureHex as `0x${string}`));
|
|
148
145
|
}
|
|
149
146
|
|
|
150
147
|
private async makeJsonRpcSignTypedDataRequest(
|
|
@@ -190,6 +187,6 @@ export class Web3SignerKeyStore implements ValidatorKeyStore {
|
|
|
190
187
|
signatureHex = '0x' + signatureHex;
|
|
191
188
|
}
|
|
192
189
|
|
|
193
|
-
return Signature.fromString(signatureHex as `0x${string}`);
|
|
190
|
+
return normalizeSignature(Signature.fromString(signatureHex as `0x${string}`));
|
|
194
191
|
}
|
|
195
192
|
}
|
package/src/metrics.ts
CHANGED
|
@@ -85,15 +85,17 @@ export class ValidatorMetrics {
|
|
|
85
85
|
this.successfulAttestationsCount.add(num);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
public incFailedAttestationsBadProposal(num: number, reason: string) {
|
|
88
|
+
public incFailedAttestationsBadProposal(num: number, reason: string, inCommittee: boolean) {
|
|
89
89
|
this.failedAttestationsBadProposalCount.add(num, {
|
|
90
90
|
[Attributes.ERROR_TYPE]: reason,
|
|
91
|
+
[Attributes.IS_COMMITTEE_MEMBER]: inCommittee,
|
|
91
92
|
});
|
|
92
93
|
}
|
|
93
94
|
|
|
94
|
-
public incFailedAttestationsNodeIssue(num: number, reason: string) {
|
|
95
|
+
public incFailedAttestationsNodeIssue(num: number, reason: string, inCommittee: boolean) {
|
|
95
96
|
this.failedAttestationsNodeIssueCount.add(num, {
|
|
96
97
|
[Attributes.ERROR_TYPE]: reason,
|
|
98
|
+
[Attributes.IS_COMMITTEE_MEMBER]: inCommittee,
|
|
97
99
|
});
|
|
98
100
|
}
|
|
99
101
|
}
|
package/src/validator.ts
CHANGED
|
@@ -289,23 +289,21 @@ export class ValidatorClient extends (EventEmitter as new () => WatcherEmitter)
|
|
|
289
289
|
if (!validationResult.isValid) {
|
|
290
290
|
this.log.warn(`Proposal validation failed: ${validationResult.reason}`, proposalInfo);
|
|
291
291
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
this.metrics.incFailedAttestationsNodeIssue(1, reason);
|
|
308
|
-
}
|
|
292
|
+
const reason = validationResult.reason || 'unknown';
|
|
293
|
+
// Classify failure reason: bad proposal vs node issue
|
|
294
|
+
const badProposalReasons: BlockProposalValidationFailureReason[] = [
|
|
295
|
+
'invalid_proposal',
|
|
296
|
+
'state_mismatch',
|
|
297
|
+
'failed_txs',
|
|
298
|
+
'in_hash_mismatch',
|
|
299
|
+
'parent_block_wrong_slot',
|
|
300
|
+
];
|
|
301
|
+
|
|
302
|
+
if (badProposalReasons.includes(reason as BlockProposalValidationFailureReason)) {
|
|
303
|
+
this.metrics.incFailedAttestationsBadProposal(1, reason, partOfCommittee);
|
|
304
|
+
} else {
|
|
305
|
+
// Node issues so we can't attest
|
|
306
|
+
this.metrics.incFailedAttestationsNodeIssue(1, reason, partOfCommittee);
|
|
309
307
|
}
|
|
310
308
|
|
|
311
309
|
// Slash invalid block proposals (can happen even when not in committee)
|