code: def save(file, overwrite: false, allow_negative_balance: false)
        raise 'You have to join at least one wallet in' if empty?
        before = ''
        wallet = Wallet.new(file)
        before = wallet.digest if wallet.exists?
        Tempfile.open([@id, Wallet::EXT]) do |f|
          temp = Wallet.new(f.path)
          temp.init(@id, @key, overwrite: overwrite, network: @network)
          File.open(f.path, 'a') do |t|
            @txns.each do |txn|
              next if Id::BANNED.include?(txn.bnf.to_s)
              t.print "#{txn}\n"
            end
          end
          temp.refurbish
          if temp.balance.negative? && !temp.id.root? && !allow_negative_balance
            if wallet.exists?
              @log.info("The balance is negative, won't merge #{temp.mnemo} on top of #{wallet.mnemo}")
            else
              @log.info("The balance is negative, won't save #{temp.mnemo}")
            end
          else
            FileUtils.mkdir_p(File.dirname(file))
            IO.write(file, IO.read(f.path))
          end
        end
        before != wallet.digest
      end
docs: Returns TRUE if the file was actually modified