@lodestar/state-transition 1.26.0-dev.3eef8ea470 → 1.26.0-dev.418e81ef2d
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/lib/block/isValidIndexedAttestation.d.ts +3 -3
- package/lib/block/isValidIndexedAttestation.js.map +1 -1
- package/lib/block/processAttesterSlashing.d.ts +3 -3
- package/lib/block/processAttesterSlashing.js.map +1 -1
- package/lib/block/processVoluntaryExit.d.ts +1 -1
- package/lib/block/processVoluntaryExit.js +7 -12
- package/lib/block/processVoluntaryExit.js.map +1 -1
- package/lib/block/processWithdrawals.js +10 -4
- package/lib/block/processWithdrawals.js.map +1 -1
- package/lib/signatureSets/indexedAttestation.d.ts +2 -2
- package/lib/signatureSets/indexedAttestation.js.map +1 -1
- package/lib/util/attestation.d.ts +2 -2
- package/lib/util/attestation.js.map +1 -1
- package/package.json +10 -10
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IndexedAttestation, IndexedAttestationBigint } from "@lodestar/types";
|
|
2
2
|
import { CachedBeaconStateAllForks } from "../types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
|
|
5
5
|
*/
|
|
6
|
-
export declare function isValidIndexedAttestation(state: CachedBeaconStateAllForks, indexedAttestation:
|
|
7
|
-
export declare function isValidIndexedAttestationBigint(state: CachedBeaconStateAllForks, indexedAttestation:
|
|
6
|
+
export declare function isValidIndexedAttestation(state: CachedBeaconStateAllForks, indexedAttestation: IndexedAttestation, verifySignature: boolean): boolean;
|
|
7
|
+
export declare function isValidIndexedAttestationBigint(state: CachedBeaconStateAllForks, indexedAttestation: IndexedAttestationBigint, verifySignature: boolean): boolean;
|
|
8
8
|
/**
|
|
9
9
|
* Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
|
|
10
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isValidIndexedAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAEhG,OAAO,EAAC,uCAAuC,EAAE,iCAAiC,EAAC,MAAM,2BAA2B,CAAC;AAErH,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"isValidIndexedAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAEhG,OAAO,EAAC,uCAAuC,EAAE,iCAAiC,EAAC,MAAM,2BAA2B,CAAC;AAErH,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAgC,EAChC,kBAAsC,EACtC,eAAwB;IAExB,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,iCAAiC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAAgC,EAChC,kBAA4C,EAC5C,eAAwB;IAExB,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,uCAAuC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,KAAgC,EAAE,OAAiB;IAClG,+BAA+B;IAC/B,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO;QACpD,CAAC,CAAC,4BAA4B,GAAG,uBAAuB;QACxD,CAAC,CAAC,4BAA4B,CAAC;IACnC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IACxC,mDAAmD;IACnD,oFAAoF;IACpF,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;IAED,yFAAyF;IACzF,wEAAwE;IACxE,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ForkSeq } from "@lodestar/params";
|
|
2
|
-
import {
|
|
2
|
+
import { AttesterSlashing } from "@lodestar/types";
|
|
3
3
|
import { CachedBeaconStateAllForks } from "../types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Process an AttesterSlashing operation. Initiates the exit of a validator, decreases the balance of the slashed
|
|
@@ -7,6 +7,6 @@ import { CachedBeaconStateAllForks } from "../types.js";
|
|
|
7
7
|
*
|
|
8
8
|
* PERF: Work depends on number of AttesterSlashing per block. On regular networks the average is 0 / block.
|
|
9
9
|
*/
|
|
10
|
-
export declare function processAttesterSlashing(fork: ForkSeq, state: CachedBeaconStateAllForks, attesterSlashing:
|
|
11
|
-
export declare function assertValidAttesterSlashing(state: CachedBeaconStateAllForks, attesterSlashing:
|
|
10
|
+
export declare function processAttesterSlashing(fork: ForkSeq, state: CachedBeaconStateAllForks, attesterSlashing: AttesterSlashing, verifySignatures?: boolean): void;
|
|
11
|
+
export declare function assertValidAttesterSlashing(state: CachedBeaconStateAllForks, attesterSlashing: AttesterSlashing, verifySignatures?: boolean): void;
|
|
12
12
|
//# sourceMappingURL=processAttesterSlashing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAttesterSlashing.js","sourceRoot":"","sources":["../../src/block/processAttesterSlashing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,2BAA2B,EAAE,0BAA0B,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAC,+BAA+B,EAAC,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAa,EACb,KAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"processAttesterSlashing.js","sourceRoot":"","sources":["../../src/block/processAttesterSlashing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,2BAA2B,EAAE,0BAA0B,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAC,+BAA+B,EAAC,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAa,EACb,KAAgC,EAChC,gBAAkC,EAClC,gBAAgB,GAAG,IAAI;IAEvB,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAEvE,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IAE1E,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,mDAAmD;IACxF,2CAA2C;IAC3C,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9D,IAAI,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAgC,EAChC,gBAAkC,EAClC,gBAAgB,GAAG,IAAI;IAEvB,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;IACnD,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;IAEnD,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,8GAA8G;IAC9G,gHAAgH;IAChH,gGAAgG;IAChG,KAAK,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACtE,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -7,5 +7,5 @@ import { CachedBeaconStateAllForks } from "../types.js";
|
|
|
7
7
|
* PERF: Work depends on number of VoluntaryExit per block. On regular networks the average is 0 / block.
|
|
8
8
|
*/
|
|
9
9
|
export declare function processVoluntaryExit(fork: ForkSeq, state: CachedBeaconStateAllForks, signedVoluntaryExit: phase0.SignedVoluntaryExit, verifySignature?: boolean): void;
|
|
10
|
-
export declare function isValidVoluntaryExit(state: CachedBeaconStateAllForks, signedVoluntaryExit: phase0.SignedVoluntaryExit, verifySignature?: boolean): boolean;
|
|
10
|
+
export declare function isValidVoluntaryExit(fork: ForkSeq, state: CachedBeaconStateAllForks, signedVoluntaryExit: phase0.SignedVoluntaryExit, verifySignature?: boolean): boolean;
|
|
11
11
|
//# sourceMappingURL=processVoluntaryExit.d.ts.map
|
|
@@ -8,16 +8,13 @@ import { initiateValidatorExit } from "./index.js";
|
|
|
8
8
|
* PERF: Work depends on number of VoluntaryExit per block. On regular networks the average is 0 / block.
|
|
9
9
|
*/
|
|
10
10
|
export function processVoluntaryExit(fork, state, signedVoluntaryExit, verifySignature = true) {
|
|
11
|
-
|
|
12
|
-
? isValidVoluntaryExitElectra(state, signedVoluntaryExit, verifySignature)
|
|
13
|
-
: isValidVoluntaryExit(state, signedVoluntaryExit, verifySignature);
|
|
14
|
-
if (!isValidExit) {
|
|
11
|
+
if (!isValidVoluntaryExit(fork, state, signedVoluntaryExit, verifySignature)) {
|
|
15
12
|
throw Error(`Invalid voluntary exit at forkSeq=${fork}`);
|
|
16
13
|
}
|
|
17
14
|
const validator = state.validators.get(signedVoluntaryExit.message.validatorIndex);
|
|
18
15
|
initiateValidatorExit(fork, state, validator);
|
|
19
16
|
}
|
|
20
|
-
export function isValidVoluntaryExit(state, signedVoluntaryExit, verifySignature = true) {
|
|
17
|
+
export function isValidVoluntaryExit(fork, state, signedVoluntaryExit, verifySignature = true) {
|
|
21
18
|
const { config, epochCtx } = state;
|
|
22
19
|
const voluntaryExit = signedVoluntaryExit.message;
|
|
23
20
|
const validator = state.validators.get(voluntaryExit.validatorIndex);
|
|
@@ -31,14 +28,12 @@ export function isValidVoluntaryExit(state, signedVoluntaryExit, verifySignature
|
|
|
31
28
|
currentEpoch >= voluntaryExit.epoch &&
|
|
32
29
|
// verify the validator had been active long enough
|
|
33
30
|
currentEpoch >= validator.activationEpoch + config.SHARD_COMMITTEE_PERIOD &&
|
|
31
|
+
(fork >= ForkSeq.electra
|
|
32
|
+
? // only exit validator if it has no pending withdrawals in the queue
|
|
33
|
+
getPendingBalanceToWithdraw(state, voluntaryExit.validatorIndex) === 0
|
|
34
|
+
: // there are no pending withdrawals in previous forks
|
|
35
|
+
true) &&
|
|
34
36
|
// verify signature
|
|
35
37
|
(!verifySignature || verifyVoluntaryExitSignature(state, signedVoluntaryExit)));
|
|
36
38
|
}
|
|
37
|
-
function isValidVoluntaryExitElectra(state, signedVoluntaryExit, verifySignature = true) {
|
|
38
|
-
// only exit validator if it has no pending withdrawals in the queue (post-Electra only)
|
|
39
|
-
if (getPendingBalanceToWithdraw(state, signedVoluntaryExit.message.validatorIndex) === 0) {
|
|
40
|
-
return isValidVoluntaryExit(state, signedVoluntaryExit, verifySignature);
|
|
41
|
-
}
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
39
|
//# sourceMappingURL=processVoluntaryExit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processVoluntaryExit.js","sourceRoot":"","sources":["../../src/block/processVoluntaryExit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAC,4BAA4B,EAAC,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAC,2BAA2B,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAC,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAEjD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAa,EACb,KAAgC,EAChC,mBAA+C,EAC/C,eAAe,GAAG,IAAI;IAEtB,
|
|
1
|
+
{"version":3,"file":"processVoluntaryExit.js","sourceRoot":"","sources":["../../src/block/processVoluntaryExit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAC,4BAA4B,EAAC,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAC,2BAA2B,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAC,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAEjD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAa,EACb,KAAgC,EAChC,mBAA+C,EAC/C,eAAe,GAAG,IAAI;IAEtB,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAAE,CAAC;QAC7E,MAAM,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACnF,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAa,EACb,KAAgC,EAChC,mBAA+C,EAC/C,eAAe,GAAG,IAAI;IAEtB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC;IACjC,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEpC,OAAO;IACL,iCAAiC;IACjC,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC;QAC1C,qCAAqC;QACrC,SAAS,CAAC,SAAS,KAAK,gBAAgB;QACxC,qFAAqF;QACrF,YAAY,IAAI,aAAa,CAAC,KAAK;QACnC,mDAAmD;QACnD,YAAY,IAAI,SAAS,CAAC,eAAe,GAAG,MAAM,CAAC,sBAAsB;QACzE,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO;YACtB,CAAC,CAAC,oEAAoE;gBACpE,2BAA2B,CAAC,KAAiC,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC;YACpG,CAAC,CAAC,qDAAqD;gBACrD,IAAI,CAAC;QACT,mBAAmB;QACnB,CAAC,CAAC,eAAe,IAAI,4BAA4B,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAC/E,CAAC;AACJ,CAAC"}
|
|
@@ -102,12 +102,9 @@ export function getExpectedWithdrawals(fork, state) {
|
|
|
102
102
|
for (n = 0; n < bound; n++) {
|
|
103
103
|
// Get next validator in turn
|
|
104
104
|
const validatorIndex = (nextWithdrawalValidatorIndex + n) % validators.length;
|
|
105
|
-
const partiallyWithdrawnBalance = withdrawals
|
|
106
|
-
.filter((withdrawal) => withdrawal.validatorIndex === validatorIndex)
|
|
107
|
-
.reduce((acc, withdrawal) => acc + Number(withdrawal.amount), 0);
|
|
108
105
|
const validator = validators.getReadonly(validatorIndex);
|
|
109
106
|
const balance = isPostElectra
|
|
110
|
-
? balances.get(validatorIndex) -
|
|
107
|
+
? balances.get(validatorIndex) - getPartiallyWithdrawnBalance(withdrawals, validatorIndex)
|
|
111
108
|
: balances.get(validatorIndex);
|
|
112
109
|
const { withdrawableEpoch, withdrawalCredentials, effectiveBalance } = validator;
|
|
113
110
|
const hasWithdrawableCredentials = isPostElectra
|
|
@@ -146,4 +143,13 @@ export function getExpectedWithdrawals(fork, state) {
|
|
|
146
143
|
}
|
|
147
144
|
return { withdrawals, sampledValidators: n, processedPartialWithdrawalsCount };
|
|
148
145
|
}
|
|
146
|
+
function getPartiallyWithdrawnBalance(withdrawals, validatorIndex) {
|
|
147
|
+
let total = BigInt(0);
|
|
148
|
+
for (const withdrawal of withdrawals) {
|
|
149
|
+
if (withdrawal.validatorIndex === validatorIndex) {
|
|
150
|
+
total += withdrawal.amount;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return Number(total);
|
|
154
|
+
}
|
|
149
155
|
//# sourceMappingURL=processWithdrawals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processWithdrawals.js","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,qBAAqB,EACrB,0CAA0C,EAC1C,oCAAoC,EACpC,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"processWithdrawals.js","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { SignedBeaconBlock, phase0 } from "@lodestar/types";
|
|
1
|
+
import { IndexedAttestation, SignedBeaconBlock, phase0 } from "@lodestar/types";
|
|
2
2
|
import { CachedBeaconStateAllForks } from "../types.js";
|
|
3
3
|
import { ISignatureSet } from "../util/index.js";
|
|
4
4
|
export declare function getAttestationDataSigningRoot(state: CachedBeaconStateAllForks, data: phase0.AttestationData): Uint8Array;
|
|
5
5
|
export declare function getAttestationWithIndicesSignatureSet(state: CachedBeaconStateAllForks, attestation: Pick<phase0.Attestation, "data" | "signature">, attestingIndices: number[]): ISignatureSet;
|
|
6
|
-
export declare function getIndexedAttestationSignatureSet(state: CachedBeaconStateAllForks, indexedAttestation:
|
|
6
|
+
export declare function getIndexedAttestationSignatureSet(state: CachedBeaconStateAllForks, indexedAttestation: IndexedAttestation): ISignatureSet;
|
|
7
7
|
export declare function getAttestationsSignatureSets(state: CachedBeaconStateAllForks, signedBlock: SignedBeaconBlock): ISignatureSet[];
|
|
8
8
|
//# sourceMappingURL=indexedAttestation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexedAttestation.js","sourceRoot":"","sources":["../../src/signatureSets/indexedAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"indexedAttestation.js","sourceRoot":"","sources":["../../src/signatureSets/indexedAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAgD,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAEL,kBAAkB,EAClB,uBAAuB,EACvB,yCAAyC,GAC1C,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,6BAA6B,CAC3C,KAAgC,EAChC,IAA4B;IAE5B,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;IAEhF,OAAO,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,KAAgC,EAChC,WAA2D,EAC3D,gBAA0B;IAE1B,OAAO,yCAAyC,CAC9C,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC3D,6BAA6B,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,EACtD,WAAW,CAAC,SAAS,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAAgC,EAChC,kBAAsC;IAEtC,OAAO,qCAAqC,CAAC,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAgC,EAChC,WAA8B;IAE9B,wFAAwF;IACxF,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAC/D,iCAAiC,CAC/B,KAAK,EACL,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CACrG,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Slot, ValidatorIndex, phase0 } from "@lodestar/types";
|
|
1
|
+
import { AttesterSlashing, Slot, ValidatorIndex, phase0 } from "@lodestar/types";
|
|
2
2
|
/**
|
|
3
3
|
* Check if [[data1]] and [[data2]] are slashable according to Casper FFG rules.
|
|
4
4
|
*/
|
|
5
5
|
export declare function isSlashableAttestationData(data1: phase0.AttestationDataBigint, data2: phase0.AttestationDataBigint): boolean;
|
|
6
6
|
export declare function isValidAttestationSlot(attestationSlot: Slot, currentSlot: Slot): boolean;
|
|
7
|
-
export declare function getAttesterSlashableIndices(attesterSlashing:
|
|
7
|
+
export declare function getAttesterSlashableIndices(attesterSlashing: AttesterSlashing): ValidatorIndex[];
|
|
8
8
|
//# sourceMappingURL=attestation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../src/util/attestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,+BAA+B,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAClF,OAAO,
|
|
1
|
+
{"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../src/util/attestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,+BAA+B,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAiD,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpF;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAmC,EACnC,KAAmC;IAEnC,OAAO;IACL,cAAc;IACd,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACrG,gBAAgB;QAChB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CACrF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,eAAqB,EAAE,WAAiB;IAC7E,OAAO,CACL,eAAe,GAAG,+BAA+B,IAAI,WAAW,IAAI,WAAW,IAAI,eAAe,GAAG,eAAe,CACrH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,gBAAkC;IAC5E,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,CAAC;IAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.26.0-dev.
|
|
14
|
+
"version": "1.26.0-dev.418e81ef2d",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -58,17 +58,17 @@
|
|
|
58
58
|
},
|
|
59
59
|
"types": "lib/index.d.ts",
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@chainsafe/as-sha256": "^0.
|
|
61
|
+
"@chainsafe/as-sha256": "^1.0.0",
|
|
62
62
|
"@chainsafe/blst": "^2.1.0",
|
|
63
|
-
"@chainsafe/persistent-merkle-tree": "^0.
|
|
64
|
-
"@chainsafe/persistent-ts": "^0.
|
|
63
|
+
"@chainsafe/persistent-merkle-tree": "^1.0.1",
|
|
64
|
+
"@chainsafe/persistent-ts": "^1.0.0",
|
|
65
65
|
"@chainsafe/pubkey-index-map": "2.0.0",
|
|
66
|
-
"@chainsafe/ssz": "^0.
|
|
66
|
+
"@chainsafe/ssz": "^1.0.1",
|
|
67
67
|
"@chainsafe/swap-or-not-shuffle": "^0.0.2",
|
|
68
|
-
"@lodestar/config": "1.26.0-dev.
|
|
69
|
-
"@lodestar/params": "1.26.0-dev.
|
|
70
|
-
"@lodestar/types": "1.26.0-dev.
|
|
71
|
-
"@lodestar/utils": "1.26.0-dev.
|
|
68
|
+
"@lodestar/config": "1.26.0-dev.418e81ef2d",
|
|
69
|
+
"@lodestar/params": "1.26.0-dev.418e81ef2d",
|
|
70
|
+
"@lodestar/types": "1.26.0-dev.418e81ef2d",
|
|
71
|
+
"@lodestar/utils": "1.26.0-dev.418e81ef2d",
|
|
72
72
|
"bigint-buffer": "^1.1.5"
|
|
73
73
|
},
|
|
74
74
|
"keywords": [
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"beacon",
|
|
78
78
|
"blockchain"
|
|
79
79
|
],
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "158e4b84ce5d087d911524ecf84650e9b75a16de"
|
|
81
81
|
}
|