From b7f3c84f31b27bba05d92f7fe60aa5eec020479f Mon Sep 17 00:00:00 2001 From: dmitriy-bergman-works Date: Thu, 13 Jun 2024 20:58:16 +0200 Subject: [PATCH] debug: scenario is running localy, but not via github. debuging --- scenario/utils/index.ts | 20 ++++++++++++++++++++ scenario/utils/relayArbitrumMessage.ts | 20 +++++++++++++++++--- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/scenario/utils/index.ts b/scenario/utils/index.ts index 492c0ab8e..1ff2336de 100644 --- a/scenario/utils/index.ts +++ b/scenario/utils/index.ts @@ -342,6 +342,8 @@ export async function executeOpenProposal( const compWhales = dm.network === 'mainnet' ? COMP_WHALES.mainnet : COMP_WHALES.testnet; + console.log({compWhales}) + if (blocksUntilEnd > 0) { for (const whale of compWhales) { try { @@ -358,12 +360,14 @@ export async function executeOpenProposal( // Queue proposal (maybe) if (await governor.state(id) == ProposalState.Succeeded) { + console.log('here1') await setNextBaseFeeToZero(dm); await governor.queue(id, { gasPrice: 0 }); } // Execute proposal (maybe, w/ gas limit so we see if exec reverts, not a gas estimation error) if (await governor.state(id) == ProposalState.Queued) { + console.log('here2') const block = await dm.hre.ethers.provider.getBlock('latest'); const proposal = await governor.proposals(id); await setNextBlockTimestamp(dm, Math.max(block.timestamp, proposal.eta.toNumber()) + 1); @@ -383,6 +387,14 @@ export async function fastGovernanceExecute( ) { const governor = await dm.getContractOrThrow('governor'); + console.log({governor}) + + console.log({ targets, + values, + signatures, + calldatas, + }) + await setNextBaseFeeToZero(dm); const proposeTxn = await ( @@ -396,6 +408,7 @@ export async function fastGovernanceExecute( ) ).wait(); const proposeEvent = proposeTxn.events.find(event => event.event === 'ProposalCreated'); + console.log({proposeEvent}) const [id, , , , , , startBlock, endBlock] = proposeEvent.args; await executeOpenProposal(dm, { id, startBlock, endBlock }); @@ -411,6 +424,7 @@ export async function fastL2GovernanceExecute( calldatas: string[] ) { const startingBlockNumber = await governanceDeploymentManager.hre.ethers.provider.getBlockNumber(); + console.log({startingBlockNumber}) await fastGovernanceExecute( governanceDeploymentManager, proposer, @@ -424,6 +438,7 @@ export async function fastL2GovernanceExecute( } export async function createCrossChainProposal(context: CometContext, l2ProposalData: string, bridgeReceiver: BaseBridgeReceiver) { + console.log({context: CometContext, l2ProposalData, bridgeReceiver}) const govDeploymentManager = context.world.auxiliaryDeploymentManager!; const bridgeDeploymentManager = context.world.deploymentManager!; const proposer = await context.getProposer(); @@ -433,12 +448,16 @@ export async function createCrossChainProposal(context: CometContext, l2Proposal const signatures: string[] = []; const calldata: string[] = []; + console.log({bridgeNetwork}) + // Create the chain-specific wrapper around the L2 proposal data switch (bridgeNetwork) { case 'arbitrum': case 'arbitrum-goerli': { const inbox = await govDeploymentManager.getContractOrThrow('arbitrumInbox'); + console.log({inbox}) const refundAddress = constants.AddressZero; + console.log({refundAddress}) const createRetryableTicketCalldata = utils.defaultAbiCoder.encode( [ 'address', 'uint256', 'uint256', 'address', 'address', 'uint256', 'uint256', 'bytes' @@ -454,6 +473,7 @@ export async function createCrossChainProposal(context: CometContext, l2Proposal l2ProposalData, // bytes calldata data ] ); + console.log({createRetryableTicketCalldata}) targets.push(inbox.address); values.push(0); signatures.push('createRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)'); diff --git a/scenario/utils/relayArbitrumMessage.ts b/scenario/utils/relayArbitrumMessage.ts index 4929b9533..8c898cd39 100644 --- a/scenario/utils/relayArbitrumMessage.ts +++ b/scenario/utils/relayArbitrumMessage.ts @@ -11,17 +11,20 @@ export async function relayArbitrumMessage( ) { // L1 contracts const inbox = await governanceDeploymentManager.getContractOrThrow('arbitrumInbox'); // Inbox -> Bridge + console.log({inbox}) const bridge = await governanceDeploymentManager.getContractOrThrow('arbitrumBridge'); - + console.log({bridge}) // L2 contracts const bridgeReceiver = await bridgeDeploymentManager.getContractOrThrow('bridgeReceiver'); + console.log({bridgeReceiver}) const inboxMessageDeliveredEvents: Log[] = await governanceDeploymentManager.hre.ethers.provider.getLogs({ fromBlock: startingBlockNumber, toBlock: 'latest', address: inbox.address, topics: [utils.id('InboxMessageDelivered(uint256,bytes)')] }); + console.log({inboxMessageDeliveredEvents}) const dataAndTargets = inboxMessageDeliveredEvents.map(({ data, topics }) => { const header = '0x'; @@ -38,6 +41,8 @@ export async function relayArbitrumMessage( }; }); + console.log({dataAndTargets}) + const messageDeliveredEvents: Log[] = await governanceDeploymentManager.hre.ethers.provider.getLogs({ fromBlock: startingBlockNumber, toBlock: 'latest', @@ -45,6 +50,8 @@ export async function relayArbitrumMessage( topics: [utils.id('MessageDelivered(uint256,bytes32,address,uint8,address,bytes32,uint256,uint64)')] }); + console.log({messageDeliveredEvents}) + const senders = messageDeliveredEvents.map(({ data, topics }) => { const decodedData = utils.defaultAbiCoder.decode( [ @@ -65,6 +72,8 @@ export async function relayArbitrumMessage( }; }); + console.log({senders}) + const bridgedMessages = dataAndTargets.map((dataAndTarget, i) => { if (dataAndTarget.messageNum !== senders[i].messageNum) { throw new Error(`Mismatched message numbers in Arbitrum bridged message to ${dataAndTarget.toAddress}`); @@ -75,28 +84,33 @@ export async function relayArbitrumMessage( }; }); + console.log({bridgedMessages}) + for (let bridgedMessage of bridgedMessages) { const { sender, data, toAddress } = bridgedMessage; + console.log({sender, data, toAddress}) const arbitrumSigner = await impersonateAddress( bridgeDeploymentManager, sender ); + console.log({arbitrumSigner}) const transactionRequest = await arbitrumSigner.populateTransaction({ to: toAddress, from: sender, data, gasPrice: 0 }); - + console.log({transactionRequest}) await setNextBaseFeeToZero(bridgeDeploymentManager); const tx = await ( await arbitrumSigner.sendTransaction(transactionRequest) ).wait(); - + console.log({tx}) const proposalCreatedLog = tx.logs.find( event => event.address === bridgeReceiver.address ); + console.log({proposalCreatedLog}) if (proposalCreatedLog) { const { args: { id, eta }