@aztec/ethereum 2.0.3-rc.17 → 2.0.3-rc.18
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/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +4 -0
- package/dest/contracts/slasher_contract.d.ts +5 -0
- package/dest/contracts/slasher_contract.d.ts.map +1 -1
- package/dest/contracts/slasher_contract.js +7 -0
- package/dest/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils.js +3 -2
- package/dest/publisher_manager.d.ts +4 -1
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +10 -2
- package/dest/test/rollup_cheat_codes.d.ts +3 -1
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +2 -2
- package/package.json +5 -5
- package/src/contracts/multicall.ts +5 -0
- package/src/contracts/slasher_contract.ts +9 -0
- package/src/l1_tx_utils.ts +3 -2
- package/src/publisher_manager.ts +14 -4
- package/src/test/rollup_cheat_codes.ts +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../src/contracts/multicall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../src/contracts/multicall.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAqC,KAAK,GAAG,EAAqC,MAAM,MAAM,CAAC;AAEtG,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAmB,MAAM,aAAa,CAAC;AAGlE,eAAO,MAAM,oBAAoB,EAAG,4CAAqD,CAAC;AAE1F,qBAAa,UAAU;WACR,OAAO,CAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,UAAU,EAAE,YAAY,GAAG,SAAS,EACpC,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO;;;;;;;;;;;CAuG3C;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,iBA+BxF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { toHex as toPaddedHex } from '@aztec/foundation/bigint-buffer';
|
|
2
|
+
import { TimeoutError } from '@aztec/foundation/error';
|
|
2
3
|
import { encodeFunctionData, multicall3Abi } from 'viem';
|
|
3
4
|
import { FormattedViemError, formatViemError } from '../utils.js';
|
|
4
5
|
import { RollupContract } from './rollup.js';
|
|
@@ -73,6 +74,9 @@ export class Multicall3 {
|
|
|
73
74
|
};
|
|
74
75
|
}
|
|
75
76
|
} catch (err) {
|
|
77
|
+
if (err instanceof TimeoutError) {
|
|
78
|
+
throw err;
|
|
79
|
+
}
|
|
76
80
|
for (const request of requests){
|
|
77
81
|
logger.debug('Simulating request', {
|
|
78
82
|
request
|
|
@@ -15,6 +15,11 @@ export declare class SlasherContract {
|
|
|
15
15
|
* @returns True if the payload is vetoed, false otherwise
|
|
16
16
|
*/
|
|
17
17
|
isPayloadVetoed(payloadAddress: EthAddress): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Checks if slashing is currently enabled.
|
|
20
|
+
* @returns True if slashing is enabled, false otherwise
|
|
21
|
+
*/
|
|
22
|
+
isSlashingEnabled(): Promise<boolean>;
|
|
18
23
|
/**
|
|
19
24
|
* Gets the current vetoer address.
|
|
20
25
|
* @returns The vetoer address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slasher_contract.d.ts","sourceRoot":"","sources":["../../src/contracts/slasher_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAM3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IALtB,OAAO,CAAC,QAAQ,CAAuD;gBAGpD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EACnB,GAAG,yCAAmC;IASzD;;;;OAIG;IACU,eAAe,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1E;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAK7C;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjD;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;CAIhD"}
|
|
1
|
+
{"version":3,"file":"slasher_contract.d.ts","sourceRoot":"","sources":["../../src/contracts/slasher_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAM3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IALtB,OAAO,CAAC,QAAQ,CAAuD;gBAGpD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EACnB,GAAG,yCAAmC;IASzD;;;;OAIG;IACU,eAAe,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1E;;;OAGG;IACI,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK5C;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAK7C;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjD;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;CAIhD"}
|
|
@@ -34,6 +34,13 @@ import { getContract } from 'viem';
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
+
* Checks if slashing is currently enabled.
|
|
38
|
+
* @returns True if slashing is enabled, false otherwise
|
|
39
|
+
*/ isSlashingEnabled() {
|
|
40
|
+
// TODO(#16971) Update when merged L1 changes
|
|
41
|
+
return Promise.resolve(true);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
37
44
|
* Gets the current vetoer address.
|
|
38
45
|
* @returns The vetoer address
|
|
39
46
|
*/ async getVetoer() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1_tx_utils.d.ts","sourceRoot":"","sources":["../src/l1_tx_utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"l1_tx_utils.d.ts","sourceRoot":"","sources":["../src/l1_tx_utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIvD,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,OAAO,EAEZ,KAAK,cAAc,EACnB,KAAK,8BAA8B,EAEnC,KAAK,GAAG,EAIR,KAAK,gCAAgC,EACrC,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EAQlB,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAuBvE,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,CA6DvE,CAAC;AAEF,eAAO,MAAM,sBAAsB,iBAA6D,CAAC;AAEjG,wBAAgB,yBAAyB,IAAI,eAAe,CAE3D;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAE/F,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,GAAG,CAAC;IACT,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,YAAY;IACtB,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,SAAS,IAAA;IACT,KAAK,IAAA;CACN;AAED,qBAAa,iBAAiB;IAKnB,MAAM,EAAE,UAAU;IACzB,SAAS,CAAC,MAAM,EAAE,MAAM;aACR,YAAY,EAAE,YAAY;IAE1C,SAAS,CAAC,gBAAgB,EAAE,OAAO;IARrC,SAAgB,MAAM,EAAE,eAAe,CAAC;IACxC,SAAS,CAAC,WAAW,UAAS;gBAGrB,MAAM,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,YAAoC,EAC5C,YAAY,EAAE,YAAY,EAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACvB,gBAAgB,GAAE,OAAe;IAQtC,SAAS;IAIT,OAAO;IAIP,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIR,cAAc;IAIrB;;OAEG;IACU,WAAW,CACtB,UAAU,CAAC,EAAE,eAAe,EAC5B,QAAQ,GAAE,OAAe,EACzB,OAAO,GAAE,MAAU,EACnB,gBAAgB,CAAC,EAAE,OAAO,OAAO,SAAS,CAAC,GAAG,KAAK,GAAG,QAAQ,GAC7D,OAAO,CAAC,QAAQ,CAAC;IAmHpB;;OAEG;IACU,WAAW,CACtB,OAAO,EAAE,OAAO,GAAG,GAAG,EACtB,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,eAAe,EAC5B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC,MAAM,CAAC;IA0BZ,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAcnE,yBAAyB,CACpC,IAAI,EAAE,GAAG,EACT,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,GAAG,CAAC;QACT,OAAO,EAAE,GAAG,CAAC;KACd,EACD,UAAU,EAAE,CAAC,YAAY,GAAG;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,EACrE,aAAa,GAAE,aAAkB;IAkDtB,QAAQ,CACnB,OAAO,EAAE,WAAW,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,EACnD,cAAc,GAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAM,EACnD,cAAc,GAAE,aAAkB,EAClC,GAAG,GAAE,GAAe,EACpB,UAAU,CAAC,EAAE,eAAe,GAAG;QAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;KAAE,CAAC;cAYtC,SAAS,CACvB,IAAI,EAAE,GAAG,EACT,cAAc,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,YAAK,EACnD,cAAc,EAAE,aAAa,YAAK,EAClC,SAAS,EAAE,eAAe,GAAG;QAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC7D,GAAG,EAAE,GAAG;;gBAuBkE,KAAK,MAAM,EAAE;;IAelF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,MAAM;CAQ5E;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,WAAW,EAAE,uBAAuB,EACpC,cAAc,EAAE,UAAU,KACvB,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEvC,qBAAa,SAAU,SAAQ,iBAAiB;IAM5B,MAAM,EAAE,UAAU;IAC3B,OAAO,EAAE,UAAU;IAC1B,OAAO,CAAC,MAAM;cACK,MAAM,EAAE,MAAM;IARnC,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,YAAY,CAAe;gBAGjB,MAAM,EAAE,UAAU,EAC3B,OAAO,EAAE,UAAU,EAClB,MAAM,EAAE,eAAe,EACZ,MAAM,GAAE,MAAkC,EAC7D,YAAY,GAAE,YAAiC,EAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,gBAAgB,GAAE,OAAe;IAMnC,IAAW,KAAK,IAYS,YAAY,CAVpC;IAED,IAAW,sBAAsB,IAIe,MAAM,GAAG,SAAS,CAFjE;IAED,OAAO,KAAK,sBAAsB,QAEjC;IAED,OAAO,KAAK,KAAK,QAKhB;IAEM,gBAAgB;IAIhB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;YAM5B,eAAe;cAKb,wBAAwB,CAAC,MAAM,EAAE,gCAAgC;IAKjF;;;;;OAKG;IACU,eAAe,CAC1B,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,WAAW,EACxB,UAAU,CAAC,EAAE,YAAY,EACzB,WAAW,GAAE,YAAgC,GAC5C,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC;IAwEjE;;;;;;;OAOG;IACU,kBAAkB,CAC7B,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,GAAG,EAClB,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,EACrB,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,EAC5B,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG;QAAE,WAAW,CAAC,EAAE,IAAI,CAAA;KAAE,EAC9D,WAAW,CAAC,EAAE,YAAY,EAC1B,UAAU,GAAE,OAAe,GAC1B,OAAO,CAAC,kBAAkB,CAAC;IA0N9B;;;;;OAKG;IACU,yBAAyB,CACpC,OAAO,EAAE,WAAW,EACpB,SAAS,CAAC,EAAE,WAAW,EACvB,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,kBAAkB,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC;IAMzC,QAAQ,CAC5B,OAAO,EAAE,WAAW,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,EACnD,eAAe,GAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAM,EACpD,cAAc,GAAE,aAAkB,EAClC,GAAG,GAAE,GAAe,EACpB,UAAU,CAAC,EAAE,eAAe,GAAG;QAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7F,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;KAAE,CAAC;IAsBtD;;;;;;;OAOG;cACa,qBAAqB,CACnC,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,EACrB,QAAQ,UAAQ,EAChB,gBAAgB,CAAC,EAAE,QAAQ,EAC3B,QAAQ,SAAI;CAsDf;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,mBAoBpD;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,wBAAwB,EAChC,MAAM,GAAE,MAAkC,EAC1C,YAAY,GAAE,YAAiC,EAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,gBAAgB,GAAE,OAAe,aAWlC;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,SAAS,EACjB,MAAM,GAAE,MAAkC,EAC1C,YAAY,GAAE,YAAiC,EAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,gBAAgB,GAAE,OAAe,aAMlC;AAED,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,8BAA8B,UAExF;AAOD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,UAEnD"}
|
package/dest/l1_tx_utils.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { compactArray, times } from '@aztec/foundation/collection';
|
|
2
2
|
import { bigintConfigHelper, booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper } from '@aztec/foundation/config';
|
|
3
|
+
import { TimeoutError } from '@aztec/foundation/error';
|
|
3
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
6
|
import { makeBackoff, retry } from '@aztec/foundation/retry';
|
|
@@ -698,7 +699,7 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
698
699
|
});
|
|
699
700
|
});
|
|
700
701
|
}
|
|
701
|
-
this.logger?.error(`L1 transaction ${currentTxHash} timed out`, {
|
|
702
|
+
this.logger?.error(`L1 transaction ${currentTxHash} timed out`, undefined, {
|
|
702
703
|
txHash: currentTxHash,
|
|
703
704
|
txTimeoutAt: gasConfig.txTimeoutAt,
|
|
704
705
|
txTimeoutMs: gasConfig.txTimeoutMs,
|
|
@@ -708,7 +709,7 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
708
709
|
isInterrupted: this.interrupted,
|
|
709
710
|
...tx
|
|
710
711
|
});
|
|
711
|
-
throw new
|
|
712
|
+
throw new TimeoutError(`L1 transaction ${currentTxHash} timed out`);
|
|
712
713
|
}
|
|
713
714
|
/**
|
|
714
715
|
* Sends a transaction and monitors it until completion
|
|
@@ -3,7 +3,10 @@ export type PublisherFilter<UtilsType extends L1TxUtils> = (utils: UtilsType) =>
|
|
|
3
3
|
export declare class PublisherManager<UtilsType extends L1TxUtils = L1TxUtils> {
|
|
4
4
|
private publishers;
|
|
5
5
|
private log;
|
|
6
|
-
|
|
6
|
+
private config;
|
|
7
|
+
constructor(publishers: UtilsType[], config: {
|
|
8
|
+
publisherAllowInvalidStates?: boolean;
|
|
9
|
+
});
|
|
7
10
|
getAvailablePublisher(filter?: PublisherFilter<UtilsType>): Promise<UtilsType>;
|
|
8
11
|
interrupt(): void;
|
|
9
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher_manager.d.ts","sourceRoot":"","sources":["../src/publisher_manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publisher_manager.d.ts","sourceRoot":"","sources":["../src/publisher_manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAC;AAK3D,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,SAAS,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;AAEzF,qBAAa,gBAAgB,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS;IAKjE,OAAO,CAAC,UAAU;IAJpB,OAAO,CAAC,GAAG,CAAoC;IAC/C,OAAO,CAAC,MAAM,CAA4C;gBAGhD,UAAU,EAAE,SAAS,EAAE,EAC/B,MAAM,EAAE;QAAE,2BAA2B,CAAC,EAAE,OAAO,CAAA;KAAE;IAatC,qBAAqB,CAAC,MAAM,GAAE,eAAe,CAAC,SAAS,CAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAyChG,SAAS;CAGjB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { pick } from '@aztec/foundation/collection';
|
|
1
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
3
|
import { TxUtilsState } from './l1_tx_utils.js';
|
|
3
4
|
const sortOrder = [
|
|
@@ -13,11 +14,13 @@ const invalidStates = [
|
|
|
13
14
|
export class PublisherManager {
|
|
14
15
|
publishers;
|
|
15
16
|
log;
|
|
16
|
-
|
|
17
|
+
config;
|
|
18
|
+
constructor(publishers, config){
|
|
17
19
|
this.publishers = publishers;
|
|
18
20
|
this.log = createLogger('PublisherManager');
|
|
19
21
|
this.log.info(`PublisherManager initialized with ${publishers.length} publishers.`);
|
|
20
22
|
this.publishers = publishers;
|
|
23
|
+
this.config = pick(config, 'publisherAllowInvalidStates');
|
|
21
24
|
}
|
|
22
25
|
// Finds and prioritises available publishers based on
|
|
23
26
|
// 1. Validity as per the provided filter function
|
|
@@ -27,7 +30,12 @@ export class PublisherManager {
|
|
|
27
30
|
// 5. Then priority based on least recently used
|
|
28
31
|
async getAvailablePublisher(filter = ()=>true) {
|
|
29
32
|
// Extract the valid publishers
|
|
30
|
-
|
|
33
|
+
let validPublishers = this.publishers.filter((pub)=>!invalidStates.includes(pub.state) && filter(pub));
|
|
34
|
+
// If none found but we allow invalid states, try again including them
|
|
35
|
+
if (validPublishers.length === 0 && this.config.publisherAllowInvalidStates) {
|
|
36
|
+
this.log.warn(`No valid publishers found. Trying again including invalid states.`);
|
|
37
|
+
validPublishers = this.publishers.filter((pub)=>filter(pub));
|
|
38
|
+
}
|
|
31
39
|
// Error if none found
|
|
32
40
|
if (validPublishers.length === 0) {
|
|
33
41
|
throw new Error(`Failed to find an available publisher.`);
|
|
@@ -38,9 +38,11 @@ export declare class RollupCheatCodes {
|
|
|
38
38
|
* @param epoch - The epoch to advance to
|
|
39
39
|
* @param opts - Options
|
|
40
40
|
*/
|
|
41
|
-
advanceToEpoch(epoch: bigint, opts?: {
|
|
41
|
+
advanceToEpoch(epoch: bigint | number, opts?: {
|
|
42
42
|
/** Optional test date provider to update with the epoch timestamp */
|
|
43
43
|
updateDateProvider?: TestDateProvider;
|
|
44
|
+
/** Offset in seconds */
|
|
45
|
+
offset?: number;
|
|
44
46
|
}): Promise<bigint>;
|
|
45
47
|
/** Warps time in L1 until the next epoch */
|
|
46
48
|
advanceToNextEpoch(opts?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/rollup_cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,GAAG,EAMT,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8CAA8C;AAC9C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA4D;IAE1E,OAAO,CAAC,MAAM,CAAuC;gBAG3C,aAAa,EAAE,aAAa,EACpC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC;IAavD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG,gBAAgB;IAKzG,+BAA+B;IAClB,OAAO;IAKpB,gCAAgC;IACnB,QAAQ;IAKrB;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC;QAC9B,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7C,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC;KAC5C,CAAC;IAQF;;OAEG;IACU,WAAW;IAmBxB,0EAA0E;IAC7D,SAAS,IAAI,OAAO,CAAC;QAChC,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC;QAC5C,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC;KAC3C,CAAC;IAQF;;;;OAIG;IACU,cAAc,CACzB,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"rollup_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/rollup_cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,GAAG,EAMT,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8CAA8C;AAC9C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA4D;IAE1E,OAAO,CAAC,MAAM,CAAuC;gBAG3C,aAAa,EAAE,aAAa,EACpC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC;IAavD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG,gBAAgB;IAKzG,+BAA+B;IAClB,OAAO;IAKpB,gCAAgC;IACnB,QAAQ;IAKrB;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC;QAC9B,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7C,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC;KAC5C,CAAC;IAQF;;OAEG;IACU,WAAW;IAmBxB,0EAA0E;IAC7D,SAAS,IAAI,OAAO,CAAC;QAChC,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC;QAC5C,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC;KAC3C,CAAC;IAQF;;;;OAIG;IACU,cAAc,CACzB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,IAAI,GAAE;QACJ,qEAAqE;QACrE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;QACtC,wBAAwB;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IAcR,4CAA4C;IAC/B,kBAAkB,CAC7B,IAAI,GAAE;QACJ,qEAAqE;QACrE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;KAClC;IAeR,6DAA6D;IAChD,iBAAiB;IAQ9B;;;OAGG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM;IASzC;;;OAGG;IACI,YAAY,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IAiCtD;;;OAGG;IACU,OAAO,CAClB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,SAAS,EAAE,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAQ1G;;OAEG;IACU,UAAU;IASvB,4CAA4C;IAC/B,oBAAoB;IAQjC;;;OAGG;IACU,sBAAsB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM;IAMtE;;;OAGG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM;CAWpD"}
|
|
@@ -85,8 +85,8 @@ import { EthCheatCodes } from './eth_cheat_codes.js';
|
|
|
85
85
|
*/ async advanceToEpoch(epoch, opts = {}) {
|
|
86
86
|
const { epochDuration: slotsInEpoch } = await this.getConfig();
|
|
87
87
|
const timestamp = await this.rollup.read.getTimestampForSlot([
|
|
88
|
-
epoch * slotsInEpoch
|
|
89
|
-
]);
|
|
88
|
+
BigInt(epoch) * slotsInEpoch
|
|
89
|
+
]) + BigInt(opts.offset ?? 0);
|
|
90
90
|
try {
|
|
91
91
|
await this.ethCheatCodes.warp(Number(timestamp), {
|
|
92
92
|
...opts,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/ethereum",
|
|
3
|
-
"version": "2.0.3-rc.
|
|
3
|
+
"version": "2.0.3-rc.18",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"../package.common.json"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@aztec/blob-lib": "2.0.3-rc.
|
|
35
|
-
"@aztec/constants": "2.0.3-rc.
|
|
36
|
-
"@aztec/foundation": "2.0.3-rc.
|
|
37
|
-
"@aztec/l1-artifacts": "2.0.3-rc.
|
|
34
|
+
"@aztec/blob-lib": "2.0.3-rc.18",
|
|
35
|
+
"@aztec/constants": "2.0.3-rc.18",
|
|
36
|
+
"@aztec/foundation": "2.0.3-rc.18",
|
|
37
|
+
"@aztec/l1-artifacts": "2.0.3-rc.18",
|
|
38
38
|
"@viem/anvil": "^0.0.10",
|
|
39
39
|
"dotenv": "^16.0.3",
|
|
40
40
|
"lodash.chunk": "^4.2.0",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { toHex as toPaddedHex } from '@aztec/foundation/bigint-buffer';
|
|
2
|
+
import { TimeoutError } from '@aztec/foundation/error';
|
|
2
3
|
import type { Logger } from '@aztec/foundation/log';
|
|
3
4
|
|
|
4
5
|
import { type EncodeFunctionDataParameters, type Hex, encodeFunctionData, multicall3Abi } from 'viem';
|
|
@@ -92,6 +93,10 @@ export class Multicall3 {
|
|
|
92
93
|
return { receipt, gasPrice, errorMsg };
|
|
93
94
|
}
|
|
94
95
|
} catch (err) {
|
|
96
|
+
if (err instanceof TimeoutError) {
|
|
97
|
+
throw err;
|
|
98
|
+
}
|
|
99
|
+
|
|
95
100
|
for (const request of requests) {
|
|
96
101
|
logger.debug('Simulating request', { request });
|
|
97
102
|
const result = await l1TxUtils
|
|
@@ -38,6 +38,15 @@ export class SlasherContract {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Checks if slashing is currently enabled.
|
|
43
|
+
* @returns True if slashing is enabled, false otherwise
|
|
44
|
+
*/
|
|
45
|
+
public isSlashingEnabled(): Promise<boolean> {
|
|
46
|
+
// TODO(#16971) Update when merged L1 changes
|
|
47
|
+
return Promise.resolve(true);
|
|
48
|
+
}
|
|
49
|
+
|
|
41
50
|
/**
|
|
42
51
|
* Gets the current vetoer address.
|
|
43
52
|
* @returns The vetoer address
|
package/src/l1_tx_utils.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
getDefaultConfig,
|
|
8
8
|
numberConfigHelper,
|
|
9
9
|
} from '@aztec/foundation/config';
|
|
10
|
+
import { TimeoutError } from '@aztec/foundation/error';
|
|
10
11
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
11
12
|
import type { ViemTransactionSignature } from '@aztec/foundation/eth-signature';
|
|
12
13
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
@@ -928,7 +929,7 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
928
929
|
});
|
|
929
930
|
}
|
|
930
931
|
|
|
931
|
-
this.logger?.error(`L1 transaction ${currentTxHash} timed out`, {
|
|
932
|
+
this.logger?.error(`L1 transaction ${currentTxHash} timed out`, undefined, {
|
|
932
933
|
txHash: currentTxHash,
|
|
933
934
|
txTimeoutAt: gasConfig.txTimeoutAt,
|
|
934
935
|
txTimeoutMs: gasConfig.txTimeoutMs,
|
|
@@ -939,7 +940,7 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
939
940
|
...tx,
|
|
940
941
|
});
|
|
941
942
|
|
|
942
|
-
throw new
|
|
943
|
+
throw new TimeoutError(`L1 transaction ${currentTxHash} timed out`);
|
|
943
944
|
}
|
|
944
945
|
|
|
945
946
|
/**
|
package/src/publisher_manager.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { pick } from '@aztec/foundation/collection';
|
|
1
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
3
|
|
|
3
4
|
import { L1TxUtils, TxUtilsState } from './l1_tx_utils.js';
|
|
@@ -9,10 +10,15 @@ export type PublisherFilter<UtilsType extends L1TxUtils> = (utils: UtilsType) =>
|
|
|
9
10
|
|
|
10
11
|
export class PublisherManager<UtilsType extends L1TxUtils = L1TxUtils> {
|
|
11
12
|
private log = createLogger('PublisherManager');
|
|
13
|
+
private config: { publisherAllowInvalidStates?: boolean };
|
|
12
14
|
|
|
13
|
-
constructor(
|
|
15
|
+
constructor(
|
|
16
|
+
private publishers: UtilsType[],
|
|
17
|
+
config: { publisherAllowInvalidStates?: boolean },
|
|
18
|
+
) {
|
|
14
19
|
this.log.info(`PublisherManager initialized with ${publishers.length} publishers.`);
|
|
15
20
|
this.publishers = publishers;
|
|
21
|
+
this.config = pick(config, 'publisherAllowInvalidStates');
|
|
16
22
|
}
|
|
17
23
|
|
|
18
24
|
// Finds and prioritises available publishers based on
|
|
@@ -23,9 +29,13 @@ export class PublisherManager<UtilsType extends L1TxUtils = L1TxUtils> {
|
|
|
23
29
|
// 5. Then priority based on least recently used
|
|
24
30
|
public async getAvailablePublisher(filter: PublisherFilter<UtilsType> = () => true): Promise<UtilsType> {
|
|
25
31
|
// Extract the valid publishers
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
let validPublishers = this.publishers.filter((pub: UtilsType) => !invalidStates.includes(pub.state) && filter(pub));
|
|
33
|
+
|
|
34
|
+
// If none found but we allow invalid states, try again including them
|
|
35
|
+
if (validPublishers.length === 0 && this.config.publisherAllowInvalidStates) {
|
|
36
|
+
this.log.warn(`No valid publishers found. Trying again including invalid states.`);
|
|
37
|
+
validPublishers = this.publishers.filter(pub => filter(pub));
|
|
38
|
+
}
|
|
29
39
|
|
|
30
40
|
// Error if none found
|
|
31
41
|
if (validPublishers.length === 0) {
|
|
@@ -112,14 +112,17 @@ export class RollupCheatCodes {
|
|
|
112
112
|
* @param opts - Options
|
|
113
113
|
*/
|
|
114
114
|
public async advanceToEpoch(
|
|
115
|
-
epoch: bigint,
|
|
115
|
+
epoch: bigint | number,
|
|
116
116
|
opts: {
|
|
117
117
|
/** Optional test date provider to update with the epoch timestamp */
|
|
118
118
|
updateDateProvider?: TestDateProvider;
|
|
119
|
+
/** Offset in seconds */
|
|
120
|
+
offset?: number;
|
|
119
121
|
} = {},
|
|
120
122
|
) {
|
|
121
123
|
const { epochDuration: slotsInEpoch } = await this.getConfig();
|
|
122
|
-
const timestamp =
|
|
124
|
+
const timestamp =
|
|
125
|
+
(await this.rollup.read.getTimestampForSlot([BigInt(epoch) * slotsInEpoch])) + BigInt(opts.offset ?? 0);
|
|
123
126
|
try {
|
|
124
127
|
await this.ethCheatCodes.warp(Number(timestamp), { ...opts, silent: true, resetBlockInterval: true });
|
|
125
128
|
this.logger.warn(`Warped to epoch ${epoch}`);
|