The contract supposed to give roles to the msg.sender / address of the contract creator. I tried in remix and use the hasRole of the contract creator address, but it said false. I even tried to grantRole manually in constructor, but it is still false. It turned true when grantRole again after contract launched

Code to reproduce
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "@openzeppelin/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol";
contract erc1155preset is ERC1155PresetMinterPauser{
constructor() ERC1155PresetMinterPauser("https://www.gsdf.ff/{id}.json"){
grantRole(DEFAULT_ADMIN_ROLE,0x5B38Da6a701c568545dCfcB03FcB875f56beddC4);
grantRole(MINTER_ROLE,0x5B38Da6a701c568545dCfcB03FcB875f56beddC4);
grantRole(PAUSER_ROLE,0x5B38Da6a701c568545dCfcB03FcB875f56beddC4);
}
}
Environment
Remix