The contract currently imports the U256 type from two different sources:
U256 type is imported twice from different sources, but only one of these imports is actually being used. This dual import creates potential ambiguity because its unclear which implementation should be used. The code predominantly uses the stylus_sdk version, particularly in conjunction with the ruint::uint macro in tests and with other stylus_sdk types like Address. Having two imports of the same name can lead to compiler confusion.
Remove the crate::types::U256 import and retain only the stylus_sdk version:
