Closed zoedberg closed 9 months ago
I also struggle to understand whether this is a bug or a feature... I am open to opinions.
The reason why this happens is a feature of RGB Core, which, until we integrate Bulletproofs, prevents them from being read from the disk, replacing them with random bytes. Why not zeros? To detect cases like that, when we try to use bulletproofs, they will fail. This already saved us from quite a few bugs.
UPD: I probably need to modify PartialEq
impl for ConcealedValue
, skipping comparing bulletproof data. Anyway this is correct, since we expect bulletproofs to aggregate, and their non-equivalence doesn't imply non-equivalence of the state.
I'm not sure this is a bug, but loading the same consignment file twice produces 2 consignments which look identical when formatted in debug but fail equal assertion.
To reproduce this I've done the following:
Investigating this I understood the reason is that the
PartialEq
implementation of theAssign
objectreturns
false
. More specifically the calls toto_confidential_seal
produce 2 equal values, but the calls toto_confidential_state
produce non-deterministic values, for example: