Files
smom-dbis-138/script/deploy/chains/DeploySolanaAdapter.s.sol

43 lines
1.3 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/non-evm/SolanaAdapter.sol";
contract DeploySolanaAdapter is Script {
function run() external {
uint256 pk = vm.envUint("PRIVATE_KEY");
address admin = vm.addr(pk);
address chainRegistry = vm.envAddress("CHAIN_REGISTRY_ADDRESS");
ChainRegistry registry = ChainRegistry(chainRegistry);
vm.startBroadcast(pk);
SolanaAdapter solanaAdapter = new SolanaAdapter(admin);
ChainRegistry.ChainMetadata memory existing = registry.getNonEVMChain("Solana-Mainnet");
if (existing.adapter == address(0)) {
registry.registerNonEVMChain(
"Solana-Mainnet",
ChainRegistry.ChainType.Solana,
address(solanaAdapter),
"https://solscan.io",
32,
1,
true,
""
);
} else {
registry.updateAdapter(0, "Solana-Mainnet", address(solanaAdapter));
registry.setChainActive(0, "Solana-Mainnet", true);
}
vm.stopBroadcast();
console.log("SolanaAdapter:", address(solanaAdapter));
console.log("ChainRegistry:", chainRegistry);
}
}