@aztec/ethereum 0.0.1-commit.e6bd8901 → 0.0.1-commit.ec7ac5448
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/client.d.ts +10 -2
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +13 -7
- package/dest/config.d.ts +8 -6
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +15 -11
- package/dest/contracts/chain_state_override.d.ts +38 -0
- package/dest/contracts/chain_state_override.d.ts.map +1 -0
- package/dest/contracts/chain_state_override.js +100 -0
- package/dest/contracts/empire_base.d.ts +3 -1
- package/dest/contracts/empire_base.d.ts.map +1 -1
- package/dest/contracts/fee_asset_handler.d.ts +1 -1
- package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
- package/dest/contracts/fee_asset_handler.js +2 -0
- package/dest/contracts/fee_asset_price_oracle.d.ts +101 -0
- package/dest/contracts/fee_asset_price_oracle.d.ts.map +1 -0
- package/dest/contracts/fee_asset_price_oracle.js +651 -0
- package/dest/contracts/governance.d.ts +1 -1
- package/dest/contracts/governance.d.ts.map +1 -1
- package/dest/contracts/governance.js +5 -3
- package/dest/contracts/governance_proposer.d.ts +3 -1
- package/dest/contracts/governance_proposer.d.ts.map +1 -1
- package/dest/contracts/governance_proposer.js +13 -1
- package/dest/contracts/inbox.d.ts +3 -3
- package/dest/contracts/inbox.d.ts.map +1 -1
- package/dest/contracts/inbox.js +5 -6
- package/dest/contracts/index.d.ts +4 -3
- package/dest/contracts/index.d.ts.map +1 -1
- package/dest/contracts/index.js +3 -2
- package/dest/contracts/multicall.d.ts +51 -2
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +87 -1
- package/dest/contracts/registry.d.ts +3 -1
- package/dest/contracts/registry.d.ts.map +1 -1
- package/dest/contracts/registry.js +30 -1
- package/dest/contracts/rollup.d.ts +45 -20
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +218 -52
- package/dest/contracts/{tally_slashing_proposer.d.ts → slashing_proposer.d.ts} +3 -4
- package/dest/contracts/slashing_proposer.d.ts.map +1 -0
- package/dest/contracts/{tally_slashing_proposer.js → slashing_proposer.js} +18 -13
- package/dest/deploy_aztec_l1_contracts.d.ts +4 -8
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_aztec_l1_contracts.js +39 -26
- package/dest/deploy_l1_contract.js +3 -3
- package/dest/generated/l1-contracts-defaults.d.ts +2 -2
- package/dest/generated/l1-contracts-defaults.js +2 -2
- package/dest/l1_artifacts.d.ts +9382 -15156
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_artifacts.js +9 -24
- package/dest/l1_contract_addresses.d.ts +1 -5
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +0 -6
- package/dest/l1_reader.d.ts +3 -1
- package/dest/l1_reader.d.ts.map +1 -1
- package/dest/l1_reader.js +6 -1
- package/dest/l1_tx_utils/config.d.ts +7 -1
- package/dest/l1_tx_utils/config.d.ts.map +1 -1
- package/dest/l1_tx_utils/config.js +14 -1
- package/dest/l1_tx_utils/constants.d.ts +1 -1
- package/dest/l1_tx_utils/constants.js +2 -2
- package/dest/l1_tx_utils/factory.d.ts +18 -10
- package/dest/l1_tx_utils/factory.d.ts.map +1 -1
- package/dest/l1_tx_utils/factory.js +17 -7
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +1 -1
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +1 -1
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +15 -15
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +9 -15
- package/dest/l1_tx_utils/index-blobs.d.ts +3 -3
- package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -1
- package/dest/l1_tx_utils/index-blobs.js +2 -2
- package/dest/l1_tx_utils/index.d.ts +2 -1
- package/dest/l1_tx_utils/index.d.ts.map +1 -1
- package/dest/l1_tx_utils/index.js +1 -0
- package/dest/l1_tx_utils/l1_tx_utils.d.ts +20 -7
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/l1_tx_utils.js +81 -57
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +11 -7
- package/dest/l1_tx_utils/tx_delayer.d.ts +56 -0
- package/dest/l1_tx_utils/tx_delayer.d.ts.map +1 -0
- package/dest/{test → l1_tx_utils}/tx_delayer.js +62 -34
- package/dest/publisher_manager.d.ts +21 -6
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +81 -7
- package/dest/queries.js +3 -3
- package/dest/test/chain_monitor.d.ts +22 -3
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +33 -2
- package/dest/test/eth_cheat_codes.d.ts +6 -4
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/eth_cheat_codes.js +6 -4
- package/dest/test/index.d.ts +1 -3
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +0 -2
- package/dest/test/rollup_cheat_codes.d.ts +7 -1
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +18 -1
- package/dest/test/start_anvil.d.ts +23 -3
- package/dest/test/start_anvil.d.ts.map +1 -1
- package/dest/test/start_anvil.js +143 -29
- package/dest/test/upgrade_utils.js +2 -2
- package/dest/utils.d.ts +2 -1
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +62 -12
- package/package.json +5 -7
- package/src/client.ts +10 -2
- package/src/config.ts +24 -15
- package/src/contracts/chain_state_override.ts +147 -0
- package/src/contracts/empire_base.ts +2 -0
- package/src/contracts/fee_asset_handler.ts +2 -0
- package/src/contracts/fee_asset_price_oracle.ts +280 -0
- package/src/contracts/governance.ts +5 -3
- package/src/contracts/governance_proposer.ts +10 -1
- package/src/contracts/inbox.ts +4 -4
- package/src/contracts/index.ts +3 -2
- package/src/contracts/multicall.ts +70 -3
- package/src/contracts/registry.ts +31 -1
- package/src/contracts/rollup.ts +242 -51
- package/src/contracts/{tally_slashing_proposer.ts → slashing_proposer.ts} +16 -14
- package/src/deploy_aztec_l1_contracts.ts +61 -34
- package/src/deploy_l1_contract.ts +3 -3
- package/src/generated/l1-contracts-defaults.ts +2 -2
- package/src/l1_artifacts.ts +12 -35
- package/src/l1_contract_addresses.ts +0 -7
- package/src/l1_reader.ts +13 -1
- package/src/l1_tx_utils/config.ts +20 -0
- package/src/l1_tx_utils/constants.ts +2 -2
- package/src/l1_tx_utils/factory.ts +31 -31
- package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +1 -1
- package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +1 -1
- package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +43 -54
- package/src/l1_tx_utils/index-blobs.ts +2 -2
- package/src/l1_tx_utils/index.ts +1 -0
- package/src/l1_tx_utils/l1_tx_utils.ts +74 -36
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +11 -7
- package/src/{test → l1_tx_utils}/tx_delayer.ts +78 -50
- package/src/publisher_manager.ts +107 -10
- package/src/queries.ts +3 -3
- package/src/test/chain_monitor.ts +60 -3
- package/src/test/eth_cheat_codes.ts +6 -4
- package/src/test/index.ts +0 -2
- package/src/test/rollup_cheat_codes.ts +20 -1
- package/src/test/start_anvil.ts +177 -29
- package/src/test/upgrade_utils.ts +2 -2
- package/src/utils.ts +70 -14
- package/dest/contracts/empire_slashing_proposer.d.ts +0 -67
- package/dest/contracts/empire_slashing_proposer.d.ts.map +0 -1
- package/dest/contracts/empire_slashing_proposer.js +0 -209
- package/dest/contracts/tally_slashing_proposer.d.ts.map +0 -1
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +0 -26
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +0 -1
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +0 -26
- package/dest/test/delayed_tx_utils.d.ts +0 -13
- package/dest/test/delayed_tx_utils.d.ts.map +0 -1
- package/dest/test/delayed_tx_utils.js +0 -28
- package/dest/test/tx_delayer.d.ts +0 -36
- package/dest/test/tx_delayer.d.ts.map +0 -1
- package/src/contracts/empire_slashing_proposer.ts +0 -270
- package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +0 -77
- package/src/test/delayed_tx_utils.ts +0 -52
|
@@ -2,7 +2,7 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
2
2
|
import { sleep } from '@aztec/foundation/sleep';
|
|
3
3
|
import { GovernanceAbi } from '@aztec/l1-artifacts/GovernanceAbi';
|
|
4
4
|
import { encodeFunctionData, getContract, parseEventLogs } from 'viem';
|
|
5
|
-
import {
|
|
5
|
+
import { createL1TxUtils } from '../l1_tx_utils/index.js';
|
|
6
6
|
import { isExtendedClient } from '../types.js';
|
|
7
7
|
// NOTE: Must be kept in sync with DataStructures.ProposalState in l1-contracts
|
|
8
8
|
export var ProposalState = /*#__PURE__*/ function(ProposalState) {
|
|
@@ -164,7 +164,7 @@ export class GovernanceContract extends ReadOnlyGovernanceContract {
|
|
|
164
164
|
]);
|
|
165
165
|
}
|
|
166
166
|
async vote({ proposalId, voteAmount, inFavor, retries = 10, logger }) {
|
|
167
|
-
const l1TxUtils =
|
|
167
|
+
const l1TxUtils = createL1TxUtils(this.client, {
|
|
168
168
|
logger
|
|
169
169
|
});
|
|
170
170
|
const retryDelaySeconds = 12;
|
|
@@ -184,6 +184,7 @@ export class GovernanceContract extends ReadOnlyGovernanceContract {
|
|
|
184
184
|
const encodedVoteData = encodeFunctionData(voteFunctionData);
|
|
185
185
|
const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
|
|
186
186
|
to: this.governanceContract.address,
|
|
187
|
+
abi: GovernanceAbi,
|
|
187
188
|
data: encodedVoteData
|
|
188
189
|
});
|
|
189
190
|
if (receipt.status === 'success') {
|
|
@@ -213,7 +214,7 @@ export class GovernanceContract extends ReadOnlyGovernanceContract {
|
|
|
213
214
|
logger.info(`Proposal [${proposalId}] has summedBallot nay [${proposal.summedBallot.nay}]`);
|
|
214
215
|
}
|
|
215
216
|
async executeProposal({ proposalId, retries = 10, logger }) {
|
|
216
|
-
const l1TxUtils =
|
|
217
|
+
const l1TxUtils = createL1TxUtils(this.client, {
|
|
217
218
|
logger
|
|
218
219
|
});
|
|
219
220
|
const retryDelaySeconds = 12;
|
|
@@ -230,6 +231,7 @@ export class GovernanceContract extends ReadOnlyGovernanceContract {
|
|
|
230
231
|
const encodedExecuteData = encodeFunctionData(executeFunctionData);
|
|
231
232
|
const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
|
|
232
233
|
to: this.governanceContract.address,
|
|
234
|
+
abi: GovernanceAbi,
|
|
233
235
|
data: encodedExecuteData
|
|
234
236
|
});
|
|
235
237
|
if (receipt.status === 'success') {
|
|
@@ -24,9 +24,11 @@ export declare class GovernanceProposerContract implements IEmpireBase {
|
|
|
24
24
|
getPayloadSignals(rollupAddress: Hex, round: bigint, payload: Hex): Promise<bigint>;
|
|
25
25
|
createSignalRequest(payload: Hex): L1TxRequest;
|
|
26
26
|
createSignalRequestWithSignature(payload: Hex, slot: SlotNumber, chainId: number, signerAddress: Hex, signer: (msg: TypedDataDefinition) => Promise<Hex>): Promise<L1TxRequest>;
|
|
27
|
+
/** Checks if a payload was ever submitted to governance via submitRoundWinner. */
|
|
28
|
+
hasPayloadBeenProposed(payload: Hex, fromBlock: bigint): Promise<boolean>;
|
|
27
29
|
submitRoundWinner(round: bigint, l1TxUtils: L1TxUtils): Promise<{
|
|
28
30
|
receipt: TransactionReceipt;
|
|
29
31
|
proposalId: bigint;
|
|
30
32
|
}>;
|
|
31
33
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ292ZXJuYW5jZV9wcm9wb3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9nb3Zlcm5hbmNlX3Byb3Bvc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUVMLEtBQUssR0FBRyxFQUNSLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssbUJBQW1CLEVBR3pCLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQThELE1BQU0sa0JBQWtCLENBQUM7QUFHaEgscUJBQWEsMEJBQTJCLFlBQVcsV0FBVzthQUkxQyxNQUFNLEVBQUUsVUFBVTtJQUhwQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBa0U7SUFFM0YsWUFDa0IsTUFBTSxFQUFFLFVBQVUsRUFDbEMsT0FBTyxFQUFFLEdBQUcsR0FBRyxVQUFVLEVBTTFCO0lBRUQsSUFBVyxPQUFPLGVBRWpCO0lBRVksZ0JBQWdCLHdCQUU1QjtJQUdZLGtCQUFrQix3QkFFOUI7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV0QztJQUVNLFlBQVksSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJDO0lBRU0sV0FBVywyQkFFakI7SUFFTSxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJEO0lBRVksWUFBWSxDQUN2QixhQUFhLEVBQUUsR0FBRyxFQUNsQixLQUFLLEVBQUUsTUFBTSxHQUNaLE9BQU8sQ0FBQztRQUFFLGNBQWMsRUFBRSxVQUFVLENBQUM7UUFBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUM7UUFBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO1FBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQTtLQUFFLENBQUMsQ0FZakg7SUFFTSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXpGO0lBRU0sbUJBQW1CLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxXQUFXLENBTXBEO0lBRVksZ0NBQWdDLENBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQ1osSUFBSSxFQUFFLFVBQVUsRUFDaEIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsR0FBRyxFQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUNqRCxPQUFPLENBQUMsV0FBVyxDQUFDLENBY3RCO0lBRUQsa0ZBQWtGO0lBQ3JFLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBR3JGO0lBRVksaUJBQWlCLENBQzVCLEtBQUssRUFBRSxNQUFNLEVBQ2IsU0FBUyxFQUFFLFNBQVMsR0FDbkIsT0FBTyxDQUFDO1FBQ1QsT0FBTyxFQUFFLGtCQUFrQixDQUFDO1FBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUM7S0FDcEIsQ0FBQyxDQVlEO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governance_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/governance_proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAGzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAA8D,MAAM,kBAAkB,CAAC;AAGhH,qBAAa,0BAA2B,YAAW,WAAW;aAI1C,MAAM,EAAE,UAAU;IAHpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkE;IAE3F,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,eAEjB;IAEY,gBAAgB,wBAE5B;IAGY,kBAAkB,wBAE9B;IAEM,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAEtC;IAEM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAErC;IAEM,WAAW,2BAEjB;IAEM,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErD;IAEY,YAAY,CACvB,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAYjH;IAEM,iBAAiB,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzF;IAEM,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"governance_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/governance_proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAGzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAA8D,MAAM,kBAAkB,CAAC;AAGhH,qBAAa,0BAA2B,YAAW,WAAW;aAI1C,MAAM,EAAE,UAAU;IAHpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkE;IAE3F,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,eAEjB;IAEY,gBAAgB,wBAE5B;IAGY,kBAAkB,wBAE9B;IAEM,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAEtC;IAEM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAErC;IAEM,WAAW,2BAEjB;IAEM,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErD;IAEY,YAAY,CACvB,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAYjH;IAEM,iBAAiB,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzF;IAEM,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAMpD;IAEY,gCAAgC,CAC3C,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,OAAO,CAAC,WAAW,CAAC,CActB;IAED,kFAAkF;IACrE,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrF;IAEY,iBAAiB,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC;QACT,OAAO,EAAE,kBAAkB,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAYD;CACF"}
|
|
@@ -455,6 +455,7 @@ export class GovernanceProposerContract {
|
|
|
455
455
|
createSignalRequest(payload) {
|
|
456
456
|
return {
|
|
457
457
|
to: this.address.toString(),
|
|
458
|
+
abi: GovernanceProposerAbi,
|
|
458
459
|
data: encodeSignal(payload)
|
|
459
460
|
};
|
|
460
461
|
}
|
|
@@ -462,14 +463,25 @@ export class GovernanceProposerContract {
|
|
|
462
463
|
const signature = await signSignalWithSig(signer, payload, slot, await this.getInstance(), this.address.toString(), chainId);
|
|
463
464
|
return {
|
|
464
465
|
to: this.address.toString(),
|
|
466
|
+
abi: GovernanceProposerAbi,
|
|
465
467
|
data: encodeSignalWithSignature(payload, signature)
|
|
466
468
|
};
|
|
467
469
|
}
|
|
470
|
+
/** Checks if a payload was ever submitted to governance via submitRoundWinner. */ async hasPayloadBeenProposed(payload, fromBlock) {
|
|
471
|
+
const events = await this.proposer.getEvents.PayloadSubmitted({
|
|
472
|
+
payload
|
|
473
|
+
}, {
|
|
474
|
+
fromBlock,
|
|
475
|
+
strict: true
|
|
476
|
+
});
|
|
477
|
+
return events.length > 0;
|
|
478
|
+
}
|
|
468
479
|
async submitRoundWinner(round, l1TxUtils) {
|
|
469
480
|
const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
|
|
470
481
|
to: this.address.toString(),
|
|
482
|
+
abi: GovernanceProposerAbi,
|
|
471
483
|
data: encodeFunctionData({
|
|
472
|
-
abi:
|
|
484
|
+
abi: GovernanceProposerAbi,
|
|
473
485
|
functionName: 'submitRoundWinner',
|
|
474
486
|
args: [
|
|
475
487
|
round
|
|
@@ -35,8 +35,8 @@ export declare class InboxContract {
|
|
|
35
35
|
}): Promise<InboxContractState>;
|
|
36
36
|
/** Fetches MessageSent events within the given block range. */
|
|
37
37
|
getMessageSentEvents(fromBlock: bigint, toBlock: bigint): Promise<MessageSentLog[]>;
|
|
38
|
-
/** Fetches MessageSent events for a specific message hash
|
|
39
|
-
getMessageSentEventByHash(
|
|
38
|
+
/** Fetches MessageSent events for a specific message hash at a specific block. */
|
|
39
|
+
getMessageSentEventByHash(msgHash: Hex, l1BlockHash: Hex): Promise<MessageSentLog>;
|
|
40
40
|
private mapMessageSentLog;
|
|
41
41
|
}
|
|
42
42
|
export type InboxContractState = {
|
|
@@ -44,4 +44,4 @@ export type InboxContractState = {
|
|
|
44
44
|
messagesRollingHash: Buffer16;
|
|
45
45
|
treeInProgress: bigint;
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3guZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvaW5ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXhELE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxLQUFLLHFCQUFxQixFQUFFLEtBQUssR0FBRyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBR3hGLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUczQywyQ0FBMkM7QUFDM0MsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLFdBQVcsRUFBRSxRQUFRLENBQUM7Q0FDdkIsQ0FBQztBQUVGLHVDQUF1QztBQUN2QyxNQUFNLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUV6RCxxQkFBYSxhQUFhO2FBa0JOLE1BQU0sRUFBRSxVQUFVO0lBakJwQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBcUQ7SUFFM0UsTUFBTSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixFQUFFLGdDQUFnQyxpQkFNeEY7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLGlCQUkxQztJQUVELFlBQ2tCLE1BQU0sRUFBRSxVQUFVLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQU0xQjtJQUVELElBQVcsT0FBTyxrQkFFakI7SUFFTSxXQUFXLElBQUkscUJBQXFCLENBQUMsT0FBTyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBRXZFO0lBRVksTUFBTSxDQUFDLElBQUksR0FBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUc3RjtJQUVZLFFBQVEsQ0FBQyxJQUFJLEdBQUU7UUFBRSxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUM7UUFBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQVEzRztJQUVELCtEQUErRDtJQUN6RCxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBS3hGO0lBRUQsa0ZBQWtGO0lBQzVFLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBR3ZGO0lBRUQsT0FBTyxDQUFDLGlCQUFpQjtDQWtCMUI7QUFFRCxNQUFNLE1BQU0sa0JBQWtCLEdBQUc7SUFDL0IscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLG1CQUFtQixFQUFFLFFBQVEsQ0FBQztJQUM5QixjQUFjLEVBQUUsTUFBTSxDQUFDO0NBQ3hCLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/contracts/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAGxF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,EAAE,CAAC;IACT,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AAEzD,qBAAa,aAAa;aAkBN,MAAM,EAAE,UAAU;IAjBpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqD;IAE3E,MAAM,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,gCAAgC,iBAMxF;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,iBAI1C;IAED,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,kBAEjB;IAEM,WAAW,IAAI,qBAAqB,CAAC,OAAO,QAAQ,EAAE,UAAU,CAAC,CAEvE;IAEY,MAAM,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F;IAEY,QAAQ,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ3G;IAED,+DAA+D;IACzD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAKxF;IAED,
|
|
1
|
+
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/contracts/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAGxF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,EAAE,CAAC;IACT,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AAEzD,qBAAa,aAAa;aAkBN,MAAM,EAAE,UAAU;IAjBpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqD;IAE3E,MAAM,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,gCAAgC,iBAMxF;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,iBAI1C;IAED,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,kBAEjB;IAEM,WAAW,IAAI,qBAAqB,CAAC,OAAO,QAAQ,EAAE,UAAU,CAAC,CAEvE;IAEY,MAAM,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F;IAEY,QAAQ,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ3G;IAED,+DAA+D;IACzD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAKxF;IAED,kFAAkF;IAC5E,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAGvF;IAED,OAAO,CAAC,iBAAiB;CAkB1B;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,QAAQ,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC"}
|
package/dest/contracts/inbox.js
CHANGED
|
@@ -55,14 +55,13 @@ export class InboxContract {
|
|
|
55
55
|
});
|
|
56
56
|
return logs.filter((log)=>log.blockNumber >= fromBlock && log.blockNumber <= toBlock).map((log)=>this.mapMessageSentLog(log));
|
|
57
57
|
}
|
|
58
|
-
/** Fetches MessageSent events for a specific message hash
|
|
59
|
-
const
|
|
60
|
-
hash
|
|
58
|
+
/** Fetches MessageSent events for a specific message hash at a specific block. */ async getMessageSentEventByHash(msgHash, l1BlockHash) {
|
|
59
|
+
const [log] = await this.inbox.getEvents.MessageSent({
|
|
60
|
+
hash: msgHash
|
|
61
61
|
}, {
|
|
62
|
-
|
|
63
|
-
toBlock
|
|
62
|
+
blockHash: l1BlockHash
|
|
64
63
|
});
|
|
65
|
-
return
|
|
64
|
+
return log && this.mapMessageSentLog(log);
|
|
66
65
|
}
|
|
67
66
|
mapMessageSentLog(log) {
|
|
68
67
|
return {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
export * from './chain_state_override.js';
|
|
1
2
|
export * from './empire_base.js';
|
|
2
3
|
export * from './errors.js';
|
|
3
4
|
export * from './fee_asset_handler.js';
|
|
5
|
+
export * from './fee_asset_price_oracle.js';
|
|
4
6
|
export * from './fee_juice.js';
|
|
5
7
|
export * from './governance.js';
|
|
6
8
|
export * from './governance_proposer.js';
|
|
@@ -11,7 +13,6 @@ export * from './multicall.js';
|
|
|
11
13
|
export * from './outbox.js';
|
|
12
14
|
export * from './registry.js';
|
|
13
15
|
export * from './rollup.js';
|
|
14
|
-
export * from './
|
|
15
|
-
export * from './tally_slashing_proposer.js';
|
|
16
|
+
export * from './slashing_proposer.js';
|
|
16
17
|
export * from './slasher_contract.js';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
|
package/dest/contracts/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
export * from './chain_state_override.js';
|
|
1
2
|
export * from './empire_base.js';
|
|
2
3
|
export * from './errors.js';
|
|
3
4
|
export * from './fee_asset_handler.js';
|
|
5
|
+
export * from './fee_asset_price_oracle.js';
|
|
4
6
|
export * from './fee_juice.js';
|
|
5
7
|
export * from './governance.js';
|
|
6
8
|
export * from './governance_proposer.js';
|
|
@@ -11,6 +13,5 @@ export * from './multicall.js';
|
|
|
11
13
|
export * from './outbox.js';
|
|
12
14
|
export * from './registry.js';
|
|
13
15
|
export * from './rollup.js';
|
|
14
|
-
export * from './
|
|
15
|
-
export * from './tally_slashing_proposer.js';
|
|
16
|
+
export * from './slashing_proposer.js';
|
|
16
17
|
export * from './slasher_contract.js';
|
|
@@ -1,9 +1,51 @@
|
|
|
1
1
|
import type { Logger } from '@aztec/foundation/log';
|
|
2
|
-
import { type Hex } from 'viem';
|
|
2
|
+
import { type Address, type Hex } from 'viem';
|
|
3
3
|
import type { L1BlobInputs, L1TxConfig, L1TxRequest, L1TxUtils } from '../l1_tx_utils/index.js';
|
|
4
4
|
import type { ExtendedViemWalletClient } from '../types.js';
|
|
5
5
|
import { FormattedViemError } from '../utils.js';
|
|
6
6
|
export declare const MULTI_CALL_3_ADDRESS: "0xcA11bde05977b3631167028862bE2a173976CA11";
|
|
7
|
+
/** ABI fragment for aggregate3Value — not included in viem's multicall3Abi. */
|
|
8
|
+
export declare const aggregate3ValueAbi: readonly [{
|
|
9
|
+
readonly inputs: readonly [{
|
|
10
|
+
readonly components: readonly [{
|
|
11
|
+
readonly internalType: "address";
|
|
12
|
+
readonly name: "target";
|
|
13
|
+
readonly type: "address";
|
|
14
|
+
}, {
|
|
15
|
+
readonly internalType: "bool";
|
|
16
|
+
readonly name: "allowFailure";
|
|
17
|
+
readonly type: "bool";
|
|
18
|
+
}, {
|
|
19
|
+
readonly internalType: "uint256";
|
|
20
|
+
readonly name: "value";
|
|
21
|
+
readonly type: "uint256";
|
|
22
|
+
}, {
|
|
23
|
+
readonly internalType: "bytes";
|
|
24
|
+
readonly name: "callData";
|
|
25
|
+
readonly type: "bytes";
|
|
26
|
+
}];
|
|
27
|
+
readonly internalType: "struct Multicall3.Call3Value[]";
|
|
28
|
+
readonly name: "calls";
|
|
29
|
+
readonly type: "tuple[]";
|
|
30
|
+
}];
|
|
31
|
+
readonly name: "aggregate3Value";
|
|
32
|
+
readonly outputs: readonly [{
|
|
33
|
+
readonly components: readonly [{
|
|
34
|
+
readonly internalType: "bool";
|
|
35
|
+
readonly name: "success";
|
|
36
|
+
readonly type: "bool";
|
|
37
|
+
}, {
|
|
38
|
+
readonly internalType: "bytes";
|
|
39
|
+
readonly name: "returnData";
|
|
40
|
+
readonly type: "bytes";
|
|
41
|
+
}];
|
|
42
|
+
readonly internalType: "struct Multicall3.Result[]";
|
|
43
|
+
readonly name: "returnData";
|
|
44
|
+
readonly type: "tuple[]";
|
|
45
|
+
}];
|
|
46
|
+
readonly stateMutability: "payable";
|
|
47
|
+
readonly type: "function";
|
|
48
|
+
}];
|
|
7
49
|
export declare class Multicall3 {
|
|
8
50
|
static forward(requests: L1TxRequest[], l1TxUtils: L1TxUtils, gasConfig: L1TxConfig | undefined, blobConfig: L1BlobInputs | undefined, rollupAddress: Hex, logger: Logger, opts?: {
|
|
9
51
|
revertOnFailure?: boolean;
|
|
@@ -16,6 +58,13 @@ export declare class Multicall3 {
|
|
|
16
58
|
receipt: import("viem").TransactionReceipt;
|
|
17
59
|
errorMsg: string | undefined;
|
|
18
60
|
}>;
|
|
61
|
+
/** Batch multiple value transfers into a single aggregate3Value call on Multicall3. */
|
|
62
|
+
static forwardValue(calls: {
|
|
63
|
+
to: Address;
|
|
64
|
+
value: bigint;
|
|
65
|
+
}[], l1TxUtils: L1TxUtils, logger: Logger): Promise<{
|
|
66
|
+
receipt: import("viem").TransactionReceipt;
|
|
67
|
+
}>;
|
|
19
68
|
}
|
|
20
69
|
export declare function deployMulticall3(l1Client: ExtendedViemWalletClient, logger: Logger): Promise<void>;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGljYWxsLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL211bHRpY2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQXFDLEtBQUssR0FBRyxFQUFxQyxNQUFNLE1BQU0sQ0FBQztBQUVwSCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sYUFBYSxDQUFDO0FBR2xFLGVBQU8sTUFBTSxvQkFBb0IsOENBQXdELENBQUM7QUFFMUYsaUZBQStFO0FBQy9FLGVBQU8sTUFBTSxrQkFBa0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE4QnJCLENBQUM7QUFFWCxxQkFBYSxVQUFVO0lBQ3JCLE9BQWEsT0FBTyxDQUNsQixRQUFRLEVBQUUsV0FBVyxFQUFFLEVBQ3ZCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFNBQVMsRUFBRSxVQUFVLEdBQUcsU0FBUyxFQUNqQyxVQUFVLEVBQUUsWUFBWSxHQUFHLFNBQVMsRUFDcEMsYUFBYSxFQUFFLEdBQUcsRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxJQUFJLEdBQUU7UUFBRSxlQUFlLENBQUMsRUFBRSxPQUFPLENBQUE7S0FBTzs7Ozs7Ozs7T0FzR3pDO0lBRUQsdUZBQXVGO0lBQ3ZGLE9BQWEsWUFBWSxDQUFDLEtBQUssRUFBRTtRQUFFLEVBQUUsRUFBRSxPQUFPLENBQUM7UUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0tBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU07O09BNEJ0RztDQUNGO0FBRUQsd0JBQXNCLGdCQUFnQixDQUFDLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkErQnhGIn0=
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,EAAE,KAAK,OAAO,EAAqC,KAAK,GAAG,EAAqC,MAAM,MAAM,CAAC;AAEpH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAmB,MAAM,aAAa,CAAC;AAGlE,eAAO,MAAM,oBAAoB,8CAAwD,CAAC;AAE1F,iFAA+E;AAC/E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BrB,CAAC;AAEX,qBAAa,UAAU;IACrB,OAAa,OAAO,CAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,UAAU,EAAE,YAAY,GAAG,SAAS,EACpC,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO;;;;;;;;OAsGzC;IAED,uFAAuF;IACvF,OAAa,YAAY,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;;OA4BtG;CACF;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,iBA+BxF"}
|
|
@@ -4,6 +4,61 @@ import { encodeFunctionData, multicall3Abi } from 'viem';
|
|
|
4
4
|
import { FormattedViemError, formatViemError } from '../utils.js';
|
|
5
5
|
import { RollupContract } from './rollup.js';
|
|
6
6
|
export const MULTI_CALL_3_ADDRESS = '0xcA11bde05977b3631167028862bE2a173976CA11';
|
|
7
|
+
/** ABI fragment for aggregate3Value — not included in viem's multicall3Abi. */ export const aggregate3ValueAbi = [
|
|
8
|
+
{
|
|
9
|
+
inputs: [
|
|
10
|
+
{
|
|
11
|
+
components: [
|
|
12
|
+
{
|
|
13
|
+
internalType: 'address',
|
|
14
|
+
name: 'target',
|
|
15
|
+
type: 'address'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
internalType: 'bool',
|
|
19
|
+
name: 'allowFailure',
|
|
20
|
+
type: 'bool'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
internalType: 'uint256',
|
|
24
|
+
name: 'value',
|
|
25
|
+
type: 'uint256'
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
internalType: 'bytes',
|
|
29
|
+
name: 'callData',
|
|
30
|
+
type: 'bytes'
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
internalType: 'struct Multicall3.Call3Value[]',
|
|
34
|
+
name: 'calls',
|
|
35
|
+
type: 'tuple[]'
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
name: 'aggregate3Value',
|
|
39
|
+
outputs: [
|
|
40
|
+
{
|
|
41
|
+
components: [
|
|
42
|
+
{
|
|
43
|
+
internalType: 'bool',
|
|
44
|
+
name: 'success',
|
|
45
|
+
type: 'bool'
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
internalType: 'bytes',
|
|
49
|
+
name: 'returnData',
|
|
50
|
+
type: 'bytes'
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
internalType: 'struct Multicall3.Result[]',
|
|
54
|
+
name: 'returnData',
|
|
55
|
+
type: 'tuple[]'
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
stateMutability: 'payable',
|
|
59
|
+
type: 'function'
|
|
60
|
+
}
|
|
61
|
+
];
|
|
7
62
|
export class Multicall3 {
|
|
8
63
|
static async forward(requests, l1TxUtils, gasConfig, blobConfig, rollupAddress, logger, opts = {}) {
|
|
9
64
|
requests = requests.filter((request)=>request.to !== null);
|
|
@@ -23,7 +78,8 @@ export class Multicall3 {
|
|
|
23
78
|
try {
|
|
24
79
|
const { receipt, state } = await l1TxUtils.sendAndMonitorTransaction({
|
|
25
80
|
to: MULTI_CALL_3_ADDRESS,
|
|
26
|
-
data: encodedForwarderData
|
|
81
|
+
data: encodedForwarderData,
|
|
82
|
+
abi: multicall3Abi
|
|
27
83
|
}, gasConfig, blobConfig);
|
|
28
84
|
if (receipt.status === 'success') {
|
|
29
85
|
const stats = await l1TxUtils.getTransactionStats(receipt.transactionHash);
|
|
@@ -104,6 +160,36 @@ export class Multicall3 {
|
|
|
104
160
|
throw err;
|
|
105
161
|
}
|
|
106
162
|
}
|
|
163
|
+
/** Batch multiple value transfers into a single aggregate3Value call on Multicall3. */ static async forwardValue(calls, l1TxUtils, logger) {
|
|
164
|
+
const args = calls.map((c)=>({
|
|
165
|
+
target: c.to,
|
|
166
|
+
allowFailure: false,
|
|
167
|
+
value: c.value,
|
|
168
|
+
callData: '0x'
|
|
169
|
+
}));
|
|
170
|
+
const data = encodeFunctionData({
|
|
171
|
+
abi: aggregate3ValueAbi,
|
|
172
|
+
functionName: 'aggregate3Value',
|
|
173
|
+
args: [
|
|
174
|
+
args
|
|
175
|
+
]
|
|
176
|
+
});
|
|
177
|
+
const totalValue = calls.reduce((sum, c)=>sum + c.value, 0n);
|
|
178
|
+
logger.info(`Sending aggregate3Value with ${calls.length} calls`, {
|
|
179
|
+
totalValue
|
|
180
|
+
});
|
|
181
|
+
const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
|
|
182
|
+
to: MULTI_CALL_3_ADDRESS,
|
|
183
|
+
data,
|
|
184
|
+
value: totalValue
|
|
185
|
+
});
|
|
186
|
+
if (receipt.status !== 'success') {
|
|
187
|
+
throw new Error(`aggregate3Value transaction reverted: ${receipt.transactionHash}`);
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
receipt
|
|
191
|
+
};
|
|
192
|
+
}
|
|
107
193
|
}
|
|
108
194
|
export async function deployMulticall3(l1Client, logger) {
|
|
109
195
|
const existing = await l1Client.getCode({
|
|
@@ -25,5 +25,7 @@ export declare class RegistryContract {
|
|
|
25
25
|
getNumberOfVersions(): Promise<number>;
|
|
26
26
|
getRollupVersions(): Promise<bigint[]>;
|
|
27
27
|
getRewardDistributor(): Promise<EthAddress>;
|
|
28
|
+
/** Returns the L1 timestamp at which the given rollup was registered via addRollup(). */
|
|
29
|
+
getCanonicalRollupRegistrationTimestamp(rollupAddress: EthAddress, fromBlock?: bigint): Promise<bigint | undefined>;
|
|
28
30
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSzNELE9BQU8sRUFBOEIsS0FBSyxHQUFHLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBRXJGLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTlDLHFCQUFhLGdCQUFnQjthQU9ULE1BQU0sRUFBRSxVQUFVO0lBTjdCLE9BQU8sRUFBRSxVQUFVLENBQUM7SUFFM0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQStDO0lBQ25FLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUF3RDtJQUVqRixZQUNrQixNQUFNLEVBQUUsVUFBVSxFQUNsQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFPMUI7SUFFWSxRQUFRLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUUzQztJQUVEOzs7O09BSUc7SUFDVSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxXQUFXLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQXNCekY7SUFFRDs7O09BR0c7SUFDVSxtQkFBbUIsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBRXREO0lBRVksc0JBQXNCLElBQUksT0FBTyxDQUM1QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLEdBQUcsbUJBQW1CLENBQUMsQ0FDN0UsQ0FRQTtJQUVELE9BQW9CLGdCQUFnQixDQUNsQyxNQUFNLEVBQUUsVUFBVSxFQUNsQixlQUFlLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFDakMsYUFBYSxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsV0FBVyxHQUMzQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0F1QjlCO0lBRVksbUJBQW1CLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUdsRDtJQUVZLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQVNsRDtJQUVZLG9CQUFvQixJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FFdkQ7SUFFRCx5RkFBeUY7SUFDNUUsdUNBQXVDLENBQ2xELGFBQWEsRUFBRSxVQUFVLEVBQ3pCLFNBQVMsQ0FBQyxFQUFFLE1BQU0sR0FDakIsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0F3QjdCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/contracts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAK3D,OAAO,EAA8B,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/contracts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAK3D,OAAO,EAA8B,KAAK,GAAG,EAA2B,MAAM,MAAM,CAAC;AAErF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,qBAAa,gBAAgB;aAOT,MAAM,EAAE,UAAU;IAN7B,OAAO,EAAE,UAAU,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA+C;IACnE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwD;IAEjF,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAO1B;IAEY,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAE3C;IAED;;;;OAIG;IACU,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAsBzF;IAED;;;OAGG;IACU,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC,CAEtD;IAEY,sBAAsB,IAAI,OAAO,CAC5C,IAAI,CAAC,mBAAmB,EAAE,2BAA2B,GAAG,mBAAmB,CAAC,CAC7E,CAQA;IAED,OAAoB,gBAAgB,CAClC,MAAM,EAAE,UAAU,EAClB,eAAe,EAAE,GAAG,GAAG,UAAU,EACjC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAC3C,OAAO,CAAC,mBAAmB,CAAC,CAuB9B;IAEY,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAGlD;IAEY,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CASlD;IAEY,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,CAEvD;IAED,yFAAyF;IAC5E,uCAAuC,CAClD,aAAa,EAAE,UAAU,EACzB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwB7B;CACF"}
|
|
@@ -2,7 +2,7 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { RegistryAbi } from '@aztec/l1-artifacts/RegistryAbi';
|
|
4
4
|
import { TestERC20Abi } from '@aztec/l1-artifacts/TestERC20Abi';
|
|
5
|
-
import { getContract } from 'viem';
|
|
5
|
+
import { getAbiItem, getContract } from 'viem';
|
|
6
6
|
import { ReadOnlyGovernanceContract } from './governance.js';
|
|
7
7
|
import { RollupContract } from './rollup.js';
|
|
8
8
|
export class RegistryContract {
|
|
@@ -110,4 +110,33 @@ export class RegistryContract {
|
|
|
110
110
|
async getRewardDistributor() {
|
|
111
111
|
return EthAddress.fromString(await this.registry.read.getRewardDistributor());
|
|
112
112
|
}
|
|
113
|
+
/** Returns the L1 timestamp at which the given rollup was registered via addRollup(). */ async getCanonicalRollupRegistrationTimestamp(rollupAddress, fromBlock) {
|
|
114
|
+
const event = getAbiItem({
|
|
115
|
+
abi: RegistryAbi,
|
|
116
|
+
name: 'CanonicalRollupUpdated'
|
|
117
|
+
});
|
|
118
|
+
const start = fromBlock ?? 0n;
|
|
119
|
+
const latestBlock = await this.client.getBlockNumber();
|
|
120
|
+
const chunkSize = 1_000n;
|
|
121
|
+
for(let from = start; from <= latestBlock; from += chunkSize){
|
|
122
|
+
const to = from + chunkSize - 1n > latestBlock ? latestBlock : from + chunkSize - 1n;
|
|
123
|
+
const logs = await this.client.getLogs({
|
|
124
|
+
address: this.address.toString(),
|
|
125
|
+
fromBlock: from,
|
|
126
|
+
toBlock: to,
|
|
127
|
+
strict: true,
|
|
128
|
+
event,
|
|
129
|
+
args: {
|
|
130
|
+
instance: rollupAddress.toString()
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
if (logs.length > 0) {
|
|
134
|
+
const block = await this.client.getBlock({
|
|
135
|
+
blockNumber: logs[0].blockNumber
|
|
136
|
+
});
|
|
137
|
+
return block.timestamp;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
113
142
|
}
|