diff --git a/.changeset/oft-upgradeable-shared-decimals-view.md b/.changeset/oft-upgradeable-shared-decimals-view.md new file mode 100644 index 0000000000..a02fdf935f --- /dev/null +++ b/.changeset/oft-upgradeable-shared-decimals-view.md @@ -0,0 +1,5 @@ +--- +"@layerzerolabs/oft-evm-upgradeable": patch +--- + +Align `sharedDecimals()` mutability in `OFTCoreUpgradeable` from `pure` to `view`, matching the `IOFT` interface and `OFTCore` implementations. diff --git a/packages/oft-evm-upgradeable/contracts/oft/OFTCoreUpgradeable.sol b/packages/oft-evm-upgradeable/contracts/oft/OFTCoreUpgradeable.sol index a88eb895d7..37bad18b8b 100644 --- a/packages/oft-evm-upgradeable/contracts/oft/OFTCoreUpgradeable.sol +++ b/packages/oft-evm-upgradeable/contracts/oft/OFTCoreUpgradeable.sol @@ -118,7 +118,7 @@ abstract contract OFTCoreUpgradeable is * For tokens exceeding this totalSupply(), they will need to override the sharedDecimals function with something smaller. * ie. 4 sharedDecimals would be 1,844,674,407,370,955.1615 */ - function sharedDecimals() public pure virtual returns (uint8) { + function sharedDecimals() public view virtual returns (uint8) { return 6; } diff --git a/packages/oft-evm-upgradeable/test/OFT.t.sol b/packages/oft-evm-upgradeable/test/OFT.t.sol index a5d61112d2..644b967dcb 100644 --- a/packages/oft-evm-upgradeable/test/OFT.t.sol +++ b/packages/oft-evm-upgradeable/test/OFT.t.sol @@ -555,4 +555,10 @@ contract OFTTest is TestHelperOz5 { vm.expectRevert(abi.encodeWithSelector(IOAppMsgInspector.InspectionFailed.selector, message, extraOptions)); (message, ) = aOFT.buildMsgAndOptions(sendParam, amountToCreditLD); } + + function test_shared_decimals_view() public view { + assertEq(aOFT.sharedDecimals(), 6); + assertEq(bOFT.sharedDecimals(), 6); + assertEq(cOFTAdapter.sharedDecimals(), 6); + } }