Files
smom-dbis-138/script/deploy/RegisterGRUCompliantTokensV2.s.sol
T
defiQUG 76aa419320 feat: bridges, PMM, flash workflow, token-aggregation, and deployment docs
- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault.
- Token-aggregation service routes, planner, chain config, relay env templates.
- Config snapshots and multi-chain deployment markdown updates.
- gitignore services/btc-intake/dist/ (tsc output); do not track dist.

Run forge build && forge test before deploy (large solc graph).

Made-with: Cursor
2026-04-07 23:40:52 -07:00

51 lines
1.7 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "forge-std/Script.sol";
import {UniversalAssetRegistry} from "../../contracts/registry/UniversalAssetRegistry.sol";
/**
* @title RegisterGRUCompliantTokensV2
* @notice Stage deployed c* V2 contracts in UniversalAssetRegistry using version-aware symbols.
* @dev Keeps live V1 symbols untouched while allowing indexers/operators to discover V2 addresses.
* Env: UNIVERSAL_ASSET_REGISTRY; optional CUSDT_V2_ADDRESS_138, CUSDC_V2_ADDRESS_138.
*/
contract RegisterGRUCompliantTokensV2 is Script {
function run() external {
address registryAddr = vm.envAddress("UNIVERSAL_ASSET_REGISTRY");
UniversalAssetRegistry registry = UniversalAssetRegistry(registryAddr);
uint256 pk = vm.envUint("PRIVATE_KEY");
vm.startBroadcast(pk);
_register(
registry,
vm.envOr("CUSDT_V2_ADDRESS_138", address(0)),
"Tether USD (Compliant V2)",
"cUSDT.v2"
);
_register(
registry,
vm.envOr("CUSDC_V2_ADDRESS_138", address(0)),
"USD Coin (Compliant V2)",
"cUSDC.v2"
);
vm.stopBroadcast();
}
function _register(
UniversalAssetRegistry registry,
address tokenAddr,
string memory name,
string memory symbol
) internal {
if (tokenAddr == address(0)) return;
if (registry.isAssetActive(tokenAddr)) {
console.log("Skip (already registered):", symbol, vm.toString(tokenAddr));
return;
}
registry.registerGRUCompliantAsset(tokenAddr, name, symbol, 6, "International");
console.log("Registered GRU V2:", symbol, vm.toString(tokenAddr));
}
}