anchor.diff:                                     VMVersion =:= ?VM_AEVM_SOPHIA_2 -> true;
           %% TODO: Revise this before release
           ?FORTUNA_PROTOCOL_VSN when VMVersion =:= ?VM_AEVM_SOPHIA_1;
  -                                   VMVersion =:= ?VM_AEVM_SOPHIA_2 -> true;
  +                                   VMVersion =:= ?VM_AEVM_SOPHIA_2;
  +                                   VMVersion =:= ?VM_AEVM_SOPHIA_3 -> true;
           _                     when VMVersion =:= ?VM_AEVM_SOLIDITY_1 -> ?VM_AEVM_SOLIDITY_1_enabled;
           _ -> false
       end;
  
positive.code:     case {VM, ABI} of
          {?VM_AEVM_SOPHIA_1,   ?ABI_SOPHIA_1}   -> true;
          {?VM_AEVM_SOPHIA_2,   ?ABI_SOPHIA_1}   -> true;
          {?VM_AEVM_SOLIDITY_1, ?ABI_SOLIDITY_1} -> ?VM_AEVM_SOLIDITY_1_enabled;
          _                                      -> false
      end.
  
negative.code: is_legal_call(X, X) -> true;
  is_legal_call(#{vm := ?VM_AEVM_SOPHIA_2, abi := X},
                #{vm := ?VM_AEVM_SOPHIA_1, abi := X}) -> true;
  is_legal_call(#{vm := ?VM_AEVM_SOPHIA_3, abi := X},
                #{vm := ?VM_AEVM_SOPHIA_2, abi := X}) -> true;
  is_legal_call(#{vm := ?VM_AEVM_SOPHIA_3, abi := X},
                #{vm := ?VM_AEVM_SOPHIA_1, abi := X}) -> true;
  is_legal_call(_, _) -> false.
  
  -spec is_legal_version_at_height(vm_usage_type(), version(), height()) -> boolean().
  