You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So when it fails to decode the extrinsic, we can't tell if it is a Call::submit_bundle{..} or Call::submit_fraud_proof{..}. And if we get to the point where we have decoded a Call::submit_fraud_proof{..}, the fraud proof has been decoded successfully at that point.
In other words, I don't see if/how this error is possible. May be I am missing something?
So when it fails to decode the extrinsic, we can't tell if it is a Call::submit_bundle{..} or Call::submit_fraud_proof{..}. And if we get to the point where we have decoded a Call::submit_fraud_proof{..}, the fraud proof has been decoded successfully at that point.
submit_bundle and submit_fraud_proof are extrinsic of the consensus chain while this fraud proof targets undecodable domain extrinsic
Undecodable tx fraud proof is a variant of the invalid bundle fraud proof.
The fraudulent detection and the generation of the fraud proof is the same as other invalid bundle fraud proof and is already implemented, see:
https://github.com/subspace/subspace/blob/f1ab6832248a015148933f6e8f617a2e9c186e2f/domains/client/domain-operator/src/domain_block_processor.rs#L1008-L1010
https://github.com/subspace/subspace/blob/f1ab6832248a015148933f6e8f617a2e9c186e2f/domains/client/domain-operator/src/fraud_proof.rs#L147
What is left to do is the verification of the undecodable tx fraud proof, namely add a branch here to handle the
InvalidBundleType::UndecodableTx
:https://github.com/subspace/subspace/blob/f1ab6832248a015148933f6e8f617a2e9c186e2f/crates/sp-domains-fraud-proof/src/verification.rs#L463-L464
to show that the extrinsic is indeed undecodable as:
https://github.com/subspace/subspace/blob/f1ab6832248a015148933f6e8f617a2e9c186e2f/domains/client/block-preprocessor/src/lib.rs#L266-L267
The text was updated successfully, but these errors were encountered: