Through the entire codebase, there are actually places at which the code design and style adopted will not be consistent across all the contracts: It's really a permissionless bridge deployed on L1. See that ERC20 tokens will likely have another handle on L2, You need to use the getL2ERC20Address function https://andrehuejw.dreamyblogs.com/31342442/the-definitive-guide-to-scroll-bridge