Skip to content

Commit

Permalink
debug: scenario is running localy, but not via github. debuging
Browse files Browse the repository at this point in the history
  • Loading branch information
dmitriy-woof-software committed Jun 13, 2024
1 parent 9a1e180 commit b7f3c84
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 3 deletions.
20 changes: 20 additions & 0 deletions scenario/utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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);
Expand All @@ -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 (
Expand All @@ -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 });
Expand All @@ -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,
Expand All @@ -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();
Expand All @@ -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'
Expand All @@ -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)');
Expand Down
20 changes: 17 additions & 3 deletions scenario/utils/relayArbitrumMessage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -38,13 +41,17 @@ export async function relayArbitrumMessage(
};
});

console.log({dataAndTargets})

const messageDeliveredEvents: Log[] = await governanceDeploymentManager.hre.ethers.provider.getLogs({
fromBlock: startingBlockNumber,
toBlock: 'latest',
address: bridge.address,
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(
[
Expand All @@ -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}`);
Expand All @@ -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 }
Expand Down

0 comments on commit b7f3c84

Please sign in to comment.