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:
@@ -134,4 +134,24 @@ contract CompliantWrappedTokenTest is Test {
|
||||
assertEq(token.reportingURI(), "ipfs://cw-emergency-reporting");
|
||||
assertEq(token.minimumUpgradeNoticePeriod(), 30 days);
|
||||
}
|
||||
|
||||
function testWrappedBTCCanUseEightDecimalsAndFrozenBridgeRoles() public {
|
||||
CompliantWrappedToken wrappedBtc = new CompliantWrappedToken("Wrapped cBTC", "cWBTC", 8, admin);
|
||||
wrappedBtc.grantRole(MINTER_ROLE, bridge);
|
||||
wrappedBtc.grantRole(BURNER_ROLE, bridge);
|
||||
|
||||
vm.prank(bridge);
|
||||
wrappedBtc.mint(user1, 125_000_000);
|
||||
assertEq(wrappedBtc.decimals(), 8);
|
||||
assertEq(wrappedBtc.balanceOf(user1), 125_000_000);
|
||||
|
||||
wrappedBtc.freezeOperationalRoles();
|
||||
|
||||
vm.prank(bridge);
|
||||
wrappedBtc.burnFrom(user1, 25_000_000);
|
||||
assertEq(wrappedBtc.balanceOf(user1), 100_000_000);
|
||||
|
||||
vm.expectRevert();
|
||||
wrappedBtc.grantRole(MINTER_ROLE, address(0xCAFE));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user