Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solidity Bridge Deployment Scripts #681

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

0xmovses
Copy link
Contributor

@0xmovses 0xmovses commented Oct 10, 2024

Summary

Holesky Deployments

AtomicBridgeInitiatorMove : 0xb33d9fA868054FD3F8F02ba9Fc04B2a1862Ab855
AtomicBridgeCounterpartyMove : 0xA6bB0d5eA03f3bEe3510EA3Ec39e85Cd7395Bc37

Adds the necessary scripts for deploying the .sol atomic bridge contracts. Follows the same governance procedures laid out in MOVETokenDeployer.

NOTE that the addresses set for movementLabsSafe and movementFoundationSafe are unused addresses for now and are to be verified for real deployment to testnet and mainnet.

Changelog

  • Adds AtomicBridgeInitiatorMOVEDeployer.sol
  • Adds AtomicBridgeCounterpartyMOVEDeployer.sol

Testing

You can test this by deploying against a local anvil network :

PRIVATE_KEY=<YOUR_PRIVATE_KEY> forge script AtomicBridgeInitiatorDeployer --for
k-url http://127.0.0.1:8545 --broadcast

Grab the contract address generated and use that as the Initiator arg for the Counterpary script

PRIVATE_KEY=<YOUR_PRIVATE_KEY> forge script AtomicBridgeCounterpartyDeployer --for
k-url http://127.0.0.1:8545 --broadcast

@0xmovses 0xmovses self-assigned this Oct 10, 2024
@0xmovses 0xmovses marked this pull request as ready for review October 10, 2024 21:11
@0xmovses 0xmovses changed the title 0xmovses/bridge contract deploy Solidity Bridge Deployment Scripts Oct 10, 2024
TransparentUpgradeableProxy public atomicBridgeProxy;
TimelockController public timelock;
string public atomicBridgeSignature = "initialize(address,address,uint256,uint256)";
address public moveAdmin;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moveAdmin is never set, you need to find that address (emitted events from TransparentUpgradeableProxy is the best bet, see example on contract-pipeline branch). You are proposing an upgrade to address(0).

uint256 public minDelay = 2 days; // 2-day delay for governance timelock

// Safe addresses (replace these with actual safe addresses)
address public movementLabsSafe = address(0x493516F6dB02c9b7f649E650c5de244646022Aa0);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These safes are not on Holesky and there is no Safe on Holesky, if our bridge was deployed, I suggest rerunning and using EOA addresses for upgradeability

AtomicBridgeInitiatorMOVE newBridgeImplementation = new AtomicBridgeInitiatorMOVE();

timelock.schedule(
address(moveAdmin),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moveAdmin doesn't have to be wrapped in address here

@0xPrimata
Copy link
Contributor

You might want to merge primata/contract-pipeline and inherit Helper so that you can have all methods in place.

@0xPrimata
Copy link
Contributor

these addresses are wrong, here is the ethInitiator 0xa8ce38EF26fB6e912954cf1309f98d5a753d367F
and this is the ethCounterparty 0x09Da59E3fe9Db7BEb26e55467583b1C50357DC85

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants