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
This commit is contained in:
@@ -7,6 +7,7 @@ import "../../contracts/registry/GRUAssetRegistryFacet.sol";
|
||||
import "../../contracts/tokens/CompliantUSDT.sol";
|
||||
import "../../contracts/tokens/CompliantUSDC.sol";
|
||||
import "../../contracts/tokens/CompliantFiatToken.sol";
|
||||
import "../../contracts/tokens/CompliantBTC.sol";
|
||||
import "../../contracts/bridge/GRUCCIPBridge.sol";
|
||||
import "../../contracts/bridge/UniversalCCIPBridge.sol";
|
||||
import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
|
||||
@@ -21,6 +22,7 @@ contract GRUCompliantTokensRegistryTest is Test {
|
||||
CompliantUSDT public cusdt;
|
||||
CompliantUSDC public cusdc;
|
||||
CompliantFiatToken public ceurc;
|
||||
CompliantBTC public cbtc;
|
||||
|
||||
address public admin;
|
||||
|
||||
@@ -44,6 +46,7 @@ contract GRUCompliantTokensRegistryTest is Test {
|
||||
admin,
|
||||
1_000_000 * 10**6
|
||||
);
|
||||
cbtc = new CompliantBTC(admin, admin, 21_000_000 * 10**8);
|
||||
|
||||
facet = new GRUAssetRegistryFacet();
|
||||
facet.setRegistry(address(registry));
|
||||
@@ -94,6 +97,17 @@ contract GRUCompliantTokensRegistryTest is Test {
|
||||
assertEq(viaFacet.symbol, "cUSDT");
|
||||
}
|
||||
|
||||
function test_registerGRUMonetaryUnitAsset_cBTC() public {
|
||||
vm.prank(admin);
|
||||
registry.registerGRUCompliantAsset(address(cbtc), "Bitcoin (Compliant)", "cBTC", 8, "International");
|
||||
|
||||
assertTrue(registry.isAssetActive(address(cbtc)));
|
||||
assertEq(uint256(registry.getAssetType(address(cbtc))), uint256(UniversalAssetRegistry.AssetType.GRU));
|
||||
UniversalAssetRegistry.UniversalAsset memory asset = registry.getAsset(address(cbtc));
|
||||
assertEq(asset.symbol, "cBTC");
|
||||
assertEq(asset.decimals, 8);
|
||||
}
|
||||
|
||||
function test_GRUCCIPBridge_accepts_registered_GRU_asset() public {
|
||||
address mockRouter = makeAddr("router");
|
||||
vm.startPrank(admin);
|
||||
|
||||
Reference in New Issue
Block a user