72 lines
4.5 KiB
Solidity
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!");
|
|
}
|
|
}
|