Because the builtin actors pass map delete calls directly to the HAMT there are different error behaviors between specs-actors and builtin-actors delete methods.
specs-actors errors when map delete is called on a non-existent key, builtin-actors does not.
This was first found in #354 but it appears to be widespread:
balance-table add
verif_reg remove verified client
multisig purge txs
power delete claim
I don't think this drastically breaks anything since these code paths should be unreachable and so these errors shouldn't be used by any consumers to make decisions. But we need to check this.
A good fix is to stick a delete method on the Map type and force this error behavior across the board.
Because the builtin actors pass map delete calls directly to the HAMT there are different error behaviors between specs-actors and builtin-actors delete methods.
specs-actors errors when map delete is called on a non-existent key, builtin-actors does not.
This was first found in #354 but it appears to be widespread:
I don't think this drastically breaks anything since these code paths should be unreachable and so these errors shouldn't be used by any consumers to make decisions. But we need to check this.
A good fix is to stick a delete method on the Map type and force this error behavior across the board.