Files
smom-dbis-138/script/deploy/chains/DeployAllAdapters.s.sol
2026-03-02 12:14:09 -08:00

72 lines
4.5 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "forge-std/Script.sol";
import "../../../contracts/registry/ChainRegistry.sol";
import "../../../contracts/bridge/adapters/evm/EVMAdapter.sol";
import "../../../contracts/bridge/adapters/evm/XDCAdapter.sol";
import "../../../contracts/bridge/adapters/evm/AlltraAdapter.sol";
import "../../../contracts/bridge/adapters/non-evm/XRPLAdapter.sol";
import "../../../contracts/bridge/adapters/non-evm/StellarAdapter.sol";
import "../../../contracts/bridge/adapters/non-evm/TezosAdapter.sol";
import "../../../contracts/bridge/adapters/hyperledger/FireflyAdapter.sol";
import "../../../contracts/bridge/adapters/hyperledger/CactiAdapter.sol";
import "../../../contracts/bridge/adapters/hyperledger/FabricAdapter.sol";
contract DeployAllAdapters is Script {
function run() external {
uint256 pk = vm.envUint("PRIVATE_KEY");
address deployer = vm.addr(pk);
address bridge = vm.envAddress("UNIVERSAL_BRIDGE_ADDRESS");
address chainRegistry = vm.envAddress("CHAIN_REGISTRY_ADDRESS");
ChainRegistry registry = ChainRegistry(chainRegistry);
vm.startBroadcast(pk);
// Deploy EVM adapters
EVMAdapter polygonAdapter = new EVMAdapter(deployer, bridge, 137, "Polygon");
EVMAdapter arbitrumAdapter = new EVMAdapter(deployer, bridge, 42161, "Arbitrum");
EVMAdapter optimismAdapter = new EVMAdapter(deployer, bridge, 10, "Optimism");
EVMAdapter baseAdapter = new EVMAdapter(deployer, bridge, 8453, "Base");
EVMAdapter avalancheAdapter = new EVMAdapter(deployer, bridge, 43114, "Avalanche");
EVMAdapter bscAdapter = new EVMAdapter(deployer, bridge, 56, "BSC");
EVMAdapter ethereumAdapter = new EVMAdapter(deployer, bridge, 1, "Ethereum Mainnet");
EVMAdapter etherlinkAdapter = new EVMAdapter(deployer, bridge, 42793, "Etherlink Mainnet");
XDCAdapter xdcAdapter = new XDCAdapter(deployer, bridge);
AlltraAdapter alltraAdapter = new AlltraAdapter(deployer, bridge);
// Deploy non-EVM adapters
XRPLAdapter xrplAdapter = new XRPLAdapter(deployer);
StellarAdapter stellarAdapter = new StellarAdapter(deployer);
TezosAdapter tezosAdapter = new TezosAdapter(deployer);
// Deploy Hyperledger adapters
FireflyAdapter fireflyAdapter = new FireflyAdapter(deployer, "alltra-bridge");
CactiAdapter cactiAdapter = new CactiAdapter(deployer, "http://192.168.11.177:4000/api/v1");
FabricAdapter fabricAdapter = new FabricAdapter(deployer, "bridge-channel", "bridge");
// Register chains
registry.registerEVMChain(137, address(polygonAdapter), "https://polygonscan.com", 12, 2, "");
registry.registerEVMChain(42161, address(arbitrumAdapter), "https://arbiscan.io", 12, 1, "");
registry.registerEVMChain(10, address(optimismAdapter), "https://optimistic.etherscan.io", 12, 2, "");
registry.registerEVMChain(8453, address(baseAdapter), "https://basescan.org", 12, 2, "");
registry.registerEVMChain(43114, address(avalancheAdapter), "https://snowtrace.io", 12, 1, "");
registry.registerEVMChain(56, address(bscAdapter), "https://bscscan.com", 12, 3, "");
registry.registerEVMChain(1, address(ethereumAdapter), "https://etherscan.io", 12, 12, "");
registry.registerEVMChain(42793, address(etherlinkAdapter), "https://explorer.etherlink.com", 12, 2, "");
registry.registerEVMChain(50, address(xdcAdapter), "https://explorer.xdc.network", 12, 2, "");
registry.registerNonEVMChain("XRPL-Mainnet", ChainRegistry.ChainType.XRPL, address(xrplAdapter), "https://xrpscan.com", 1, 4, true, "");
registry.registerNonEVMChain("Stellar-Mainnet", ChainRegistry.ChainType.Stellar, address(stellarAdapter), "https://stellarchain.io", 1, 5, true, "");
registry.registerNonEVMChain("Tezos-Mainnet", ChainRegistry.ChainType.Other, address(tezosAdapter), "https://tzkt.io", 1, 30, true, "");
registry.registerNonEVMChain("Firefly-Orchestration", ChainRegistry.ChainType.Firefly, address(fireflyAdapter), "", 1, 1, true, "");
registry.registerNonEVMChain("Cacti-Interoperability", ChainRegistry.ChainType.Cacti, address(cactiAdapter), "", 1, 1, true, "");
registry.registerNonEVMChain("Fabric-bridge-channel", ChainRegistry.ChainType.Fabric, address(fabricAdapter), "", 1, 1, true, "");
vm.stopBroadcast();
console.log("All adapters deployed and registered!");
}
}