code: func mergeUtxoView(viewA *blockchain.UtxoViewpoint, viewB *blockchain.UtxoViewpoint) {
  	viewAEntries := viewA.Entries()
  	for outpoint, entryB := range viewB.Entries() {
  		if entryA, exists := viewAEntries[outpoint]; !exists ||
  			entryA == nil || entryA.IsSpent() {
  
  			viewAEntries[outpoint] = entryB
  		}
  	}
  }
docs: // mergeUtxoView adds all of the entries in viewB to viewA.  The result is that
  // viewA will contain all of its original entries plus all of the entries
  // in viewB.  It will replace any entries in viewB which also exist in viewA
  // if the entry in viewA is spent.