Open qalisander opened 4 months ago
It is convenient to declare errors in different modules. And reuse the error from the other module inside an enum.
Currently the following pattern for error structure doesn't work for SolidityError proc macro:
SolidityError
#[derive(SolidityError, Debug)] pub enum Error { Erc721(Erc721Error), Checkpoints(CheckpointError), ForbiddenBatchMint(ERC721ForbiddenBatchMint), ExceededMaxBatchMint(ERC721ExceededMaxBatchMint), ForbiddenMint(ERC721ForbiddenMint), ForbiddenBatchBurn(ERC721ForbiddenBatchBurn), } #[derive(SolidityError, Debug)] pub enum Erc721Error { InsufficientBalance(ERC721InsufficientBalance), InvalidSender(ERC721InvalidSender), InvalidReceiver(ERC721InvalidReceiver), InsufficientAllowance(ERC721InsufficientAllowance), InvalidSpender(ERC721InvalidSpender), } #[derive(SolidityError, Debug)] pub enum CheckpointError { CheckpointUnorderedInsertion(CheckpointUnorderedInsertion), }
Compilation fails with: "the trait bound Error: stylus_sdk::call::MethodError is not satisfied".
Error: stylus_sdk::call::MethodError
It is convenient to declare errors in different modules. And reuse the error from the other module inside an enum.
Currently the following pattern for error structure doesn't work for
SolidityError
proc macro:Compilation fails with: "the trait bound
Error: stylus_sdk::call::MethodError
is not satisfied".