29 lines
1.2 KiB
Solidity
29 lines
1.2 KiB
Solidity
|
|
|
|
// SPDX-License-Identifier: UNLICENSED
|
|
pragma solidity ^0.8.4;
|
|
import {ITokenBridge} from "../contracts/bridge/interfaces/ITokenBridge.sol";
|
|
import "forge-std/Script.sol";
|
|
|
|
contract RegisterChainsTokenBridge is Script {
|
|
// DryRun - Register chains
|
|
// dry run: forge script RegisterChainsTokenBridge --sig "dryRun(address,bytes[])" --rpc-url $RPC
|
|
function dryRun(address tokenBridge, bytes[] memory registrationVaas) public {
|
|
_registerChains(tokenBridge, registrationVaas);
|
|
}
|
|
// Register chains
|
|
// forge script RegisterChainsTokenBridge --sig "run(address,bytes[])" --rpc-url $RPC --private-key $RAW_PRIVATE_KEY --broadcast
|
|
function run(address tokenBridge, bytes[] memory registrationVaas) public {
|
|
vm.startBroadcast();
|
|
_registerChains(tokenBridge, registrationVaas);
|
|
vm.stopBroadcast();
|
|
}
|
|
|
|
function _registerChains(address tokenBridge, bytes[] memory registrationVaas) internal {
|
|
ITokenBridge tokenBridgeContract = ITokenBridge(tokenBridge);
|
|
uint256 len = registrationVaas.length;
|
|
for(uint256 i=0; i<len; i++) {
|
|
tokenBridgeContract.registerChain(registrationVaas[i]);
|
|
}
|
|
}
|
|
} |