docs: @Requires("handle != null")
    @Ensures("result != null")
    protected MethodNode injectContractMethod(ContractHandle handle) {
      MethodNode methodNode = handle.getContractMethod();
  
      if (!handle.isInjected()) {
        DebugUtils.info("instrument", "contract method "
                        + className + "." + methodNode.name
                        + methodNode.desc);
        ClassVisitor cv = classAdapter.getParent();
        List<Long> lineNumbers = handle.getLineNumbers();
        if (lineNumbers != null) {
          cv = new LineNumberingClassAdapter(cv, lineNumbers);
        }
        methodNode.accept(new ContractFixingClassAdapter(cv));
        handle.setInjected(true);
      }
  
      return methodNode;
    }